get coupon code in the newsletter email template.
1 Answer
Yes,it is possible.
- Create A cart rules from admin > Marketing > Cart Rules.
2.Create observer event email_newsletter_set_template_vars_before.So, at this event you can add new parameter via transport to template means you can create coupon and send to email.
app/code/VendorName/ModuleName/etc/frontend/events.xml
app/code/VendorName/ModuleName/Observer/ObserverforAddCustomVariable.php
class ObserverforAddCustomVariable implements ObserverInterface {
protected $ruleFactory;
protected $massgenerator;
protected $logger;
public function __construct(\Magento\SalesRule\Model\RuleFactory $ruleFactory,\Magento\SalesRule\Model\Coupon\Massgenerator $massgenerator, \Psr\Log\LoggerInterface $logger ) {
$this->ruleFactory= $ruleFactory;
$this->massgenerator = $massgenerator;
$this->logger = $logger;
}
/**
*
* @param \Magento\Framework\Event\Observer $observer
* @return void
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
/** @var \Magento\Framework\App\Action\Action $controller */
$transport = $observer->getTransport();
$transport['free-coupon'] = "FREE2020";
}
}
- At the email template , you can get this custom variables free-coupon using {{var free-coupon|raw}}
-
There is no such event like email_newsletter_set_template_vars_before. Jan 2 at 18:50