I have created a observer on "email_shipment_set_template_vars_before" & trying to set some template var but its not working.
any thoughts ?
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Mod\Sales\Observer;
use Magento\Framework\Event\ObserverInterface;
use Psr\Log\LoggerInterface;
use Magento\Sales\Model\Order\Email\Container\Template;
class ShipmentSender implements ObserverInterface
{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
/**
* @param \Psr\Log\LoggerInterface $logger
*/
public function __construct(LoggerInterface $logger,Template $templateContainer)
{
$this->logger = $logger;
$this->templateContainer = $templateContainer;
}
/**
* @param Observer $observer
* @param Template $templateContainer
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$transport = $observer->getEvent()->getTransport();
$shipment = $transport['shipment'];
$order = $transport['order'];
$justshipped = '45';
$shipped = '99';
$transport['shipment'] = $shipment;
$transport['justshipped'] = $justshipped;
$transport['shipped'] = $shipped;
$this->templateContainer->setTemplateVars($transport);
}
}
adminhtml/events.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="email_shipment_set_template_vars_before">
<observer name="shipment_sender" instance="Mod\Sales\Observer\ShipmentSender" />
</event>
</config>