Magento 2 email_templates.xml 用法解析
本文内容来自QQ群大佬陈伟明(一叶知秋)的学习分享
邮件模版
邮件相对重要,由以下几个部分组成
可以进到 Magento_Email:etc/email_templates.xsd 要看定义哪些属性
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Email:etc/email_templates.xsd"> <template id="foggyline_helpdesk_email_template_customer" label="Foggyline Helpdesk - Customer Email" file="store_owner_to_customer.html" type="html" module="Foggyline_Helpdesk" area="frontend"/> <template id="foggyline_helpdesk_email_template_store_owner" label="Foggyline Helpdesk - Store Owner Email" file="customer_to_store_owner.html" type="html" module="Foggyline_Helpdesk" area="frontend"/> </config>
id的值是 config.xml中定义的 ,如:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> <default> <foggyline_helpdesk> <email_template> <customer> foggyline_helpdesk_email_template_customer </customer> <store_owner> foggyline_helpdesk_email_template_store_owner </store_owner> </email_template> </foggyline_helpdesk> </default> </config>
模版
app/code/Foggyline/Helpdesk/view/frontend/email/customer_to_store_owner.html
<!--@subject New Ticket Created @-->
<h1>Ticket #{{var ticket.ticket_id}} created</h1>
<ul>
<li>Id: {{var ticket.ticket_id}}</li>
<li>Title: {{var ticket.title}}</li>
<li>Created_at: {{var ticket.created_at}}</li>
<li>Severity: {{var ticket.severity}}</li>
</ul>
在动作发邮件时会换变量
如:
//\Magento\Framework\Mail\Template\TransportBuilder 这是邮件处理类
$transport = $this->transportBuilder
->setTemplateIdentifier($this->scopeConfig
->getValue('foggyline_helpdesk/email_template/store_owner', $storeScope))
->setTemplateOptions(
[
'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
'store' => $this->storeManager->getStore()->getId(),
]
)
->setTemplateVars(['ticket' => $ticket])
...
定义好,在 后台 Marketing -> Communication -> Email Template 就可以看到
