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