13
13
use Magento \Sales \Model \Order \Email \NotifySender ;
14
14
use Magento \Sales \Model \Resource \Order \Creditmemo as CreditmemoResource ;
15
15
use Magento \Sales \Model \Order \Address \Renderer ;
16
+ use Magento \Framework \Event \ManagerInterface ;
16
17
17
18
/**
18
19
* Class CreditmemoSender
@@ -34,26 +35,36 @@ class CreditmemoSender extends NotifySender
34
35
*/
35
36
protected $ addressRenderer ;
36
37
38
+ /**
39
+ * Application Event Dispatcher
40
+ *
41
+ * @var ManagerInterface
42
+ */
43
+ protected $ eventManager ;
44
+
37
45
/**
38
46
* @param Template $templateContainer
39
47
* @param CreditmemoIdentity $identityContainer
40
48
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
41
49
* @param PaymentHelper $paymentHelper
42
50
* @param CreditmemoResource $creditmemoResource
43
51
* @param Renderer $addressRenderer
52
+ * @param ManagerInterface $eventManager
44
53
*/
45
54
public function __construct (
46
55
Template $ templateContainer ,
47
56
CreditmemoIdentity $ identityContainer ,
48
57
\Magento \Sales \Model \Order \Email \SenderBuilderFactory $ senderBuilderFactory ,
49
58
PaymentHelper $ paymentHelper ,
50
59
CreditmemoResource $ creditmemoResource ,
51
- Renderer $ addressRenderer
60
+ Renderer $ addressRenderer ,
61
+ ManagerInterface $ eventManager
52
62
) {
53
63
parent ::__construct ($ templateContainer , $ identityContainer , $ senderBuilderFactory );
54
64
$ this ->paymentHelper = $ paymentHelper ;
55
65
$ this ->creditmemoResource = $ creditmemoResource ;
56
66
$ this ->addressRenderer = $ addressRenderer ;
67
+ $ this ->eventManager = $ eventManager ;
57
68
}
58
69
59
70
/**
@@ -73,19 +84,27 @@ public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
73
84
$ formattedShippingAddress = '' ;
74
85
}
75
86
$ formattedBillingAddress = $ this ->addressRenderer ->format ($ order ->getBillingAddress (), 'html ' );
76
- $ this ->templateContainer ->setTemplateVars (
77
- [
78
- 'order ' => $ creditmemo ->getOrder (),
79
- 'creditmemo ' => $ creditmemo ,
80
- 'comment ' => $ comment ,
81
- 'billing ' => $ order ->getBillingAddress (),
82
- 'payment_html ' => $ this ->getPaymentHtml ($ order ),
83
- 'store ' => $ order ->getStore (),
84
- 'formattedShippingAddress ' => $ formattedShippingAddress ,
85
- 'formattedBillingAddress ' => $ formattedBillingAddress ,
87
+
88
+ $ transport = new \Magento \Framework \Object (
89
+ ['templateVars ' =>
90
+ [
91
+ 'order ' => $ order ,
92
+ 'creditmemo ' => $ creditmemo ,
93
+ 'comment ' => $ comment ,
94
+ 'billing ' => $ order ->getBillingAddress (),
95
+ 'store ' => $ order ->getStore (),
96
+ 'formattedShippingAddress ' => $ formattedShippingAddress ,
97
+ 'formattedBillingAddress ' => $ formattedBillingAddress ,
98
+ ]
86
99
]
87
100
);
88
101
102
+ $ this ->eventManager ->dispatch (
103
+ 'email_creditmemo_set_template_vars_before ' , array ('sender ' => $ this , 'transport ' => $ transport )
104
+ );
105
+
106
+ $ this ->templateContainer ->setTemplateVars ($ transport ->getTemplateVars ());
107
+
89
108
$ result = $ this ->checkAndSend ($ order , $ notify );
90
109
if ($ result ) {
91
110
$ creditmemo ->setEmailSent (true );
0 commit comments