10
10
use Magento \Sales \Model \Order \Email \Container \Template ;
11
11
use Magento \Sales \Model \Order \Email \NotifySender ;
12
12
use Magento \Sales \Model \Order \Address \Renderer ;
13
+ use Magento \Framework \Event \ManagerInterface ;
13
14
14
15
/**
15
16
* Class OrderCommentSender
@@ -21,20 +22,30 @@ class OrderCommentSender extends NotifySender
21
22
*/
22
23
protected $ addressRenderer ;
23
24
25
+ /**
26
+ * Application Event Dispatcher
27
+ *
28
+ * @var ManagerInterface
29
+ */
30
+ protected $ eventManager ;
31
+
24
32
/**
25
33
* @param Template $templateContainer
26
34
* @param OrderCommentIdentity $identityContainer
27
35
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
28
36
* @param Renderer $addressRenderer
37
+ * @param ManagerInterface $eventManager
29
38
*/
30
39
public function __construct (
31
40
Template $ templateContainer ,
32
41
OrderCommentIdentity $ identityContainer ,
33
42
\Magento \Sales \Model \Order \Email \SenderBuilderFactory $ senderBuilderFactory ,
34
- Renderer $ addressRenderer
43
+ Renderer $ addressRenderer ,
44
+ ManagerInterface $ eventManager
35
45
) {
36
46
parent ::__construct ($ templateContainer , $ identityContainer , $ senderBuilderFactory );
37
47
$ this ->addressRenderer = $ addressRenderer ;
48
+ $ this ->eventManager = $ eventManager ;
38
49
}
39
50
40
51
/**
@@ -53,16 +64,26 @@ public function send(Order $order, $notify = true, $comment = '')
53
64
$ formattedShippingAddress = '' ;
54
65
}
55
66
$ formattedBillingAddress = $ this ->addressRenderer ->format ($ order ->getBillingAddress (), 'html ' );
56
- $ this ->templateContainer ->setTemplateVars (
57
- [
58
- 'order ' => $ order ,
59
- 'comment ' => $ comment ,
60
- 'billing ' => $ order ->getBillingAddress (),
61
- 'store ' => $ order ->getStore (),
62
- 'formattedShippingAddress ' => $ formattedShippingAddress ,
63
- 'formattedBillingAddress ' => $ formattedBillingAddress ,
67
+
68
+ $ transport = new \Magento \Framework \Object (
69
+ ['templateVars ' =>
70
+ [
71
+ 'order ' => $ order ,
72
+ 'comment ' => $ comment ,
73
+ 'billing ' => $ order ->getBillingAddress (),
74
+ 'store ' => $ order ->getStore (),
75
+ 'formattedShippingAddress ' => $ formattedShippingAddress ,
76
+ 'formattedBillingAddress ' => $ formattedBillingAddress ,
77
+ ]
64
78
]
65
79
);
80
+
81
+ $ this ->eventManager ->dispatch (
82
+ 'email_order_comment_set_template_vars_before ' , array ('sender ' => $ this , 'transport ' => $ transport )
83
+ );
84
+
85
+ $ this ->templateContainer ->setTemplateVars ($ transport ->getTemplateVars ());
86
+
66
87
return $ this ->checkAndSend ($ order , $ notify );
67
88
}
68
89
}
0 commit comments