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
+ }
0 commit comments