Skip to content

Commit 01ded50

Browse files
add event to adjust template vars for creditmemo email
1 parent 6ff9807 commit 01ded50

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

app/code/Magento/Sales/Model/Order/Email/Sender/CreditmemoSender.php

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Sales\Model\Order\Email\NotifySender;
1414
use Magento\Sales\Model\Resource\Order\Creditmemo as CreditmemoResource;
1515
use Magento\Sales\Model\Order\Address\Renderer;
16+
use Magento\Framework\Event\ManagerInterface;
1617

1718
/**
1819
* Class CreditmemoSender
@@ -34,26 +35,36 @@ class CreditmemoSender extends NotifySender
3435
*/
3536
protected $addressRenderer;
3637

38+
/**
39+
* Application Event Dispatcher
40+
*
41+
* @var ManagerInterface
42+
*/
43+
protected $eventManager;
44+
3745
/**
3846
* @param Template $templateContainer
3947
* @param CreditmemoIdentity $identityContainer
4048
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
4149
* @param PaymentHelper $paymentHelper
4250
* @param CreditmemoResource $creditmemoResource
4351
* @param Renderer $addressRenderer
52+
* @param ManagerInterface $eventManager
4453
*/
4554
public function __construct(
4655
Template $templateContainer,
4756
CreditmemoIdentity $identityContainer,
4857
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
4958
PaymentHelper $paymentHelper,
5059
CreditmemoResource $creditmemoResource,
51-
Renderer $addressRenderer
60+
Renderer $addressRenderer,
61+
ManagerInterface $eventManager
5262
) {
5363
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory);
5464
$this->paymentHelper = $paymentHelper;
5565
$this->creditmemoResource = $creditmemoResource;
5666
$this->addressRenderer = $addressRenderer;
67+
$this->eventManager = $eventManager;
5768
}
5869

5970
/**
@@ -73,19 +84,27 @@ public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
7384
$formattedShippingAddress = '';
7485
}
7586
$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+
]
8699
]
87100
);
88101

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+
89108
$result = $this->checkAndSend($order, $notify);
90109
if ($result) {
91110
$creditmemo->setEmailSent(true);

0 commit comments

Comments
 (0)