12
12
use Magento \Sales \Model \Order \Email \Sender ;
13
13
use Magento \Sales \Model \Resource \Order as OrderResource ;
14
14
use Magento \Sales \Model \Order \Address \Renderer ;
15
+ use Magento \Framework \Event \ManagerInterface ;
15
16
16
17
/**
17
18
* Class OrderSender
@@ -33,26 +34,36 @@ class OrderSender extends Sender
33
34
*/
34
35
protected $ addressRenderer ;
35
36
37
+ /**
38
+ * Application Event Dispatcher
39
+ *
40
+ * @var ManagerInterface
41
+ */
42
+ protected $ eventManager ;
43
+
36
44
/**
37
45
* @param Template $templateContainer
38
46
* @param OrderIdentity $identityContainer
39
47
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
40
48
* @param PaymentHelper $paymentHelper
41
49
* @param OrderResource $orderResource
42
50
* @param Renderer $addressRenderer
51
+ * @param ManagerInterface $eventManager
43
52
*/
44
53
public function __construct (
45
54
Template $ templateContainer ,
46
55
OrderIdentity $ identityContainer ,
47
56
\Magento \Sales \Model \Order \Email \SenderBuilderFactory $ senderBuilderFactory ,
48
57
PaymentHelper $ paymentHelper ,
49
58
OrderResource $ orderResource ,
50
- Renderer $ addressRenderer
59
+ Renderer $ addressRenderer ,
60
+ ManagerInterface $ eventManager
51
61
) {
52
62
parent ::__construct ($ templateContainer , $ identityContainer , $ senderBuilderFactory );
53
63
$ this ->paymentHelper = $ paymentHelper ;
54
64
$ this ->orderResource = $ orderResource ;
55
65
$ this ->addressRenderer = $ addressRenderer ;
66
+ $ this ->eventManager = $ eventManager ;
56
67
}
57
68
58
69
/**
@@ -79,16 +90,25 @@ public function send(Order $order)
79
90
*/
80
91
protected function prepareTemplate (Order $ order )
81
92
{
82
- $ this ->templateContainer ->setTemplateVars (
83
- [
84
- 'order ' => $ order ,
85
- 'billing ' => $ order ->getBillingAddress (),
86
- 'payment_html ' => $ this ->getPaymentHtml ($ order ),
87
- 'store ' => $ order ->getStore (),
88
- 'formattedShippingAddress ' => $ this ->addressRenderer ->format ($ order ->getShippingAddress (), 'html ' ),
89
- 'formattedBillingAddress ' => $ this ->addressRenderer ->format ($ order ->getBillingAddress (), 'html ' ),
93
+ $ transport = new \Magento \Framework \Object (
94
+ ['templateVars ' =>
95
+ [
96
+ 'order ' => $ order ,
97
+ 'billing ' => $ order ->getBillingAddress (),
98
+ 'payment_html ' => $ this ->getPaymentHtml ($ order ),
99
+ 'store ' => $ order ->getStore (),
100
+ 'formattedShippingAddress ' => $ this ->addressRenderer ->format ($ order ->getShippingAddress (), 'html ' ),
101
+ 'formattedBillingAddress ' => $ this ->addressRenderer ->format ($ order ->getBillingAddress (), 'html ' ),
102
+ ]
90
103
]
91
104
);
105
+
106
+ $ this ->eventManager ->dispatch (
107
+ 'email_order_set_template_vars_before ' , array ('sender ' => $ this , 'transport ' => $ transport )
108
+ );
109
+
110
+ $ this ->templateContainer ->setTemplateVars ($ transport ->getTemplateVars ());
111
+
92
112
parent ::prepareTemplate ($ order );
93
113
}
94
114
0 commit comments