How to print field in order email?
-
18-03-2021 - |
Question
I want print a custom file in order transactional emails. Here is my Setup file:
namespace xxx\xxxx\Setup;
$quote = $setup->getTable('quote');
$salesOrder = $setup->getTable('sales_order');
$setup->getConnection()->addColumn(
$quote,
'gst',
[
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'nullable' => true,
'comment' =>'Gst'
]
);
$setup->getConnection()->addColumn(
$salesOrder,
'gst',
[
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'nullable' => true,
'comment' =>'Gst'
]
);
$setup->endSetup();
The function that saves data on order
class SaveOrderObserver implements ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
$order = $observer->getEvent()->getOrder();
$quote = $observer->getEvent()->getQuote();
$order->setData('gst', $quote->getGst());
return $this;
}
}
The event xml:
<event name="sales_model_service_quote_submit_before">
How to print GST field on user and admin email after order?
Solution
app/code/Vendor/Module/etc/events.xml
<?xml version="1.0" encoding="utf-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="email_order_set_template_vars_before">
<observer name="add_custom_variable_to_Order"
instance="Vendor\Module\Observer\ObserverforAddCustomVariable" />
</event>
</config>
app/code/Vendor/Module/Observer/ObserverforAddCustomVariable.php
<?php
namespace Vendor\Module\Observer;
use Magento\Framework\Event\ObserverInterface;
class ObserverforAddCustomVariable implements ObserverInterface
{
/**
*
* @param \Magento\Framework\Event\Observer $observer
* @return void
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$transport = $observer->getEvent()->getTransport();
$order = $transport->getOrder();
$transport['gst'] = $order->getGst();
}
}
Create custom order email template in Admin panel->Marketing->Email Templates
and use below code to display in email template
{{var gst}}
Check below link to how to override email templates
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange