在 magento 中,订单确认电子邮件以 HTML 格式发送给管理员,但我想将其更改为纯文本格式,因此我如何以及从何处仅为管理员更改该格式,客户应该按原样收到 HTMl 格式的电子邮件。
谁能给我解决方案?
谢谢。
在 magento 中,订单确认电子邮件以 HTML 格式发送给管理员,但我想将其更改为纯文本格式,因此我如何以及从何处仅为管理员更改该格式,客户应该按原样收到 HTMl 格式的电子邮件。
谁能给我解决方案?
谢谢。
对于未来的读者,不要像其他人建议的那样编辑核心文件。您可以使用一个很小的自定义模块单独在配置中实现这一点。
我安装了 AheadWorks 的博客模块,您可能没有,或者您可能有其他模块需要覆盖其电子邮件格式。所以,相应地调整。
创建app/etc/modules/YourNameSpace_EmailFormat.xml
并添加到<depends>
,因此您的配置最后加载:
<?xml version="1.0"?>
<config>
<modules>
<YourNameSpace_EmailFormat>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Contacts/>
<AW_Blog/>
</depends>
</YourNameSpace_EmailFormat>
</modules>
</config>
创建app/code/local/YourNameSpace/EmailFormat/etc/config.xml
,为您希望覆盖的所有模板添加元素:
<?xml version="1.0"?>
<config>
<modules>
<YourNameSpace_EmailFormat>
<version>1</version>
</YourNameSpace_EmailFormat>
</modules>
<global>
<template>
<email>
<customer_create_account_email_template>
<type>text</type>
</customer_create_account_email_template>
</email>
</template>
</global>
</config>
就是这样。我需要相反,所以我<type>
设置为html
. 这与Yireo 的电子邮件覆盖模块非常吻合,因此您可以轻松自定义模板。如果将纯文本电子邮件转换为 HTML,请务必更改模板标签{{var foo.bar}}
,{{htmlescape var=$foo.bar}}
以防止恶意代码注入。
你必须重写和扩展Mage_Core_Model_Email_Template
模型来实现这一点并从那里设置正确的标题,你不能按用户分开它们,你必须为此建立自己的逻辑
首先创建自定义电子邮件模板Transactions emails
并将文本类型设置为纯文本。记下该模板 ID。并在下面的文件中使用。
在\app\code\local\Mage\Sales\Model\Order.php
sendNewOrderEmail()
手动加载模板时,将变量发送到该模板并发送电子邮件。