Skip to content

Commit 7db7444

Browse files
add event to adjust template vars for order email
1 parent 13d7f39 commit 7db7444

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

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

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Magento\Sales\Model\Order\Email\Sender;
1313
use Magento\Sales\Model\Resource\Order as OrderResource;
1414
use Magento\Sales\Model\Order\Address\Renderer;
15+
use Magento\Framework\Event\ManagerInterface;
1516

1617
/**
1718
* Class OrderSender
@@ -33,26 +34,36 @@ class OrderSender extends Sender
3334
*/
3435
protected $addressRenderer;
3536

37+
/**
38+
* Application Event Dispatcher
39+
*
40+
* @var ManagerInterface
41+
*/
42+
protected $eventManager;
43+
3644
/**
3745
* @param Template $templateContainer
3846
* @param OrderIdentity $identityContainer
3947
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
4048
* @param PaymentHelper $paymentHelper
4149
* @param OrderResource $orderResource
4250
* @param Renderer $addressRenderer
51+
* @param ManagerInterface $eventManager
4352
*/
4453
public function __construct(
4554
Template $templateContainer,
4655
OrderIdentity $identityContainer,
4756
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
4857
PaymentHelper $paymentHelper,
4958
OrderResource $orderResource,
50-
Renderer $addressRenderer
59+
Renderer $addressRenderer,
60+
ManagerInterface $eventManager
5161
) {
5262
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory);
5363
$this->paymentHelper = $paymentHelper;
5464
$this->orderResource = $orderResource;
5565
$this->addressRenderer = $addressRenderer;
66+
$this->eventManager = $eventManager;
5667
}
5768

5869
/**
@@ -79,16 +90,25 @@ public function send(Order $order)
7990
*/
8091
protected function prepareTemplate(Order $order)
8192
{
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+
]
90103
]
91104
);
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+
92112
parent::prepareTemplate($order);
93113
}
94114

0 commit comments

Comments
 (0)