Skip to content

Commit 9177050

Browse files
committed
Add obbserver for updating quote customer_email
1 parent cc23756 commit 9177050

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Magento\Customer\Observer;
4+
5+
use Magento\Framework\Event\ObserverInterface;
6+
use Magento\Framework\Event\Observer;
7+
use Magento\Quote\Api\CartRepositoryInterface;
8+
9+
/**
10+
* Class observer UpgradeQuoteCustomerEmailObserver
11+
*/
12+
class UpgradeQuoteCustomerEmailObserver implements ObserverInterface
13+
{
14+
/**
15+
* @var CartRepositoryInterface
16+
*/
17+
private $cartRepository;
18+
19+
/**
20+
* @param CartRepositoryInterface $cartRepository
21+
*/
22+
public function __construct(
23+
CartRepositoryInterface $cartRepository
24+
) {
25+
$this->cartRepository = $cartRepository;
26+
}
27+
28+
/**
29+
* Upgrade quote customer email when customer has changed email
30+
* @param Observer $observer
31+
* @return void
32+
*/
33+
public function execute(Observer $observer)
34+
{
35+
/**
36+
* @var \Magento\Customer\Model\Data\Customer $customer
37+
*/
38+
$customer = $observer->getEvent()->getData('customer_data_object');
39+
$email = $customer->getEmail();
40+
41+
/**
42+
* @var \Magento\Customer\Model\Data\Customer $customer
43+
*/
44+
$customerOrig = $observer->getEvent()->getData('orig_customer_data_object');
45+
$emailOrig = $customerOrig->getEmail();
46+
47+
if($email != $emailOrig){
48+
$quote = $this->cartRepository->getForCustomer($customer->getId());
49+
$quote->setCustomerEmail($email);
50+
$this->cartRepository->save($quote);
51+
}
52+
}
53+
}

app/code/Magento/Customer/etc/frontend/events.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,7 @@
2929
<observer name="customer_password" instance="Magento\Customer\Observer\UpgradeCustomerPasswordObserver" />
3030
<observer name="customer_unlock" instance="Magento\Customer\Observer\CustomerLoginSuccessObserver" />
3131
</event>
32+
<event name="customer_save_after_data_object">
33+
<observer name="upgrade_quote_customer_email" instance="Magento\Customer\Observer\UpgradeQuoteCustomerEmailObserver"/>
34+
</event>
3235
</config>

0 commit comments

Comments
 (0)