Skip to content

Commit 811e035

Browse files
add event to adjust template vars for shipment comment email
1 parent 7db7444 commit 811e035

File tree

1 file changed

+31
-10
lines changed

1 file changed

+31
-10
lines changed

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

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Sales\Model\Order\Email\NotifySender;
1212
use Magento\Sales\Model\Order\Shipment;
1313
use Magento\Sales\Model\Order\Address\Renderer;
14+
use Magento\Framework\Event\ManagerInterface;
1415

1516
/**
1617
* Class ShipmentCommentSender
@@ -22,20 +23,30 @@ class ShipmentCommentSender extends NotifySender
2223
*/
2324
protected $addressRenderer;
2425

26+
/**
27+
* Application Event Dispatcher
28+
*
29+
* @var ManagerInterface
30+
*/
31+
protected $eventManager;
32+
2533
/**
2634
* @param Template $templateContainer
2735
* @param ShipmentCommentIdentity $identityContainer
2836
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
2937
* @param Renderer $addressRenderer
38+
* @param ManagerInterface $eventManager
3039
*/
3140
public function __construct(
3241
Template $templateContainer,
3342
ShipmentCommentIdentity $identityContainer,
3443
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
35-
Renderer $addressRenderer
44+
Renderer $addressRenderer,
45+
ManagerInterface $eventManager
3646
) {
3747
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory);
3848
$this->addressRenderer = $addressRenderer;
49+
$this->eventManager = $eventManager;
3950
}
4051

4152
/**
@@ -55,17 +66,27 @@ public function send(Shipment $shipment, $notify = true, $comment = '')
5566
$formattedShippingAddress = '';
5667
}
5768
$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+
]
6781
]
6882
);
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+
6990
return $this->checkAndSend($order, $notify);
7091
}
7192
}

0 commit comments

Comments
 (0)