我正在为Magento的PayPal扩展中进行一些改进,并且我已设置模块在订单状态更改后向客户发送电子邮件。我在PayPal订单控制器中为每个不同的状态使用了以下代码:
$order->sendOrderUpdateEmail();
$order->setEmailSent(true);
我想为每个状态发送自定义电子邮件模板,例如,当订单被取消时,客户会收到以下消息:“亲爱的客户,我们通知您,您的订单#123456已被取消某种原因......“。如何使用上面的功能设置Magento发送一封电子邮件,调用我为该特定情况创建的自定义模板?它“可能”吗?
谢谢。
答案 0 :(得分:2)
发送自定义电子邮件模板的示例:
public function sendCustomMail()
{
$emailTemplate = Mage::getModel('core/email_template');
$emailTemplate->loadDefault('custom_template_name');
$emailTemplate->setTemplateSubject('my subject here');
// Load from magento config..
$email = Mage::getStoreConfig('trans_email/ident_general/email');
$name = Mage::getStoreConfig('trans_email/ident_general/name');
$emailTemplate->setSenderName($name );
$emailTemplate->setSenderEmail($email);
// Add some custom variables here to pass into the template.
$emailTemplateVariables['username'] = ' something';
$emailTemplateVariables['store_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
$emailTemplate->send('customer@domain.com', 'name...', $emailTemplateVariables);
}
您还需要将自定义模板添加到模块配置
<强> config.xml中强>
<config>
...
<global>
...
<template>
<email>
<custom_template_name module="Namespace_Module">
<label>Custom Template</label>
<file>mycustomtemplate.html</file>
<type>html</type>
</custom_template_name>
</email>
</template>
</global>
</config>
然后,您可以将自定义电子邮件模板与其他人一起添加
<强> /app/locale/en_US/template/email/mycustomtemplate.html 强>
<h1>Dear {{var username}}</h1>
<p>bla bla </p>
<div>{{var storename}} ({{var store_url}})</div>