Skip to content

Commit 13d7f39

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

File tree

1 file changed

+30
-9
lines changed

1 file changed

+30
-9
lines changed

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

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Magento\Sales\Model\Order\Email\Container\Template;
1111
use Magento\Sales\Model\Order\Email\NotifySender;
1212
use Magento\Sales\Model\Order\Address\Renderer;
13+
use Magento\Framework\Event\ManagerInterface;
1314

1415
/**
1516
* Class OrderCommentSender
@@ -21,20 +22,30 @@ class OrderCommentSender extends NotifySender
2122
*/
2223
protected $addressRenderer;
2324

25+
/**
26+
* Application Event Dispatcher
27+
*
28+
* @var ManagerInterface
29+
*/
30+
protected $eventManager;
31+
2432
/**
2533
* @param Template $templateContainer
2634
* @param OrderCommentIdentity $identityContainer
2735
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
2836
* @param Renderer $addressRenderer
37+
* @param ManagerInterface $eventManager
2938
*/
3039
public function __construct(
3140
Template $templateContainer,
3241
OrderCommentIdentity $identityContainer,
3342
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
34-
Renderer $addressRenderer
43+
Renderer $addressRenderer,
44+
ManagerInterface $eventManager
3545
) {
3646
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory);
3747
$this->addressRenderer = $addressRenderer;
48+
$this->eventManager = $eventManager;
3849
}
3950

4051
/**
@@ -53,16 +64,26 @@ public function send(Order $order, $notify = true, $comment = '')
5364
$formattedShippingAddress = '';
5465
}
5566
$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+
]
6478
]
6579
);
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+
6687
return $this->checkAndSend($order, $notify);
6788
}
6889
}

0 commit comments

Comments
 (0)