Magento:使用自定义电子邮件模板发送状态更改

3

我正在为Magento的PayPal扩展程序进行改进,我设置了模块在订单状态更改后向客户发送电子邮件。我已经在PayPal订单控制器中为每个不同的状态使用了以下代码:

$order->sendOrderUpdateEmail();
$order->setEmailSent(true);

我希望为每种状态发送自定义电子邮件模板,例如当订单被取消时,客户会收到以下消息:“尊敬的客户您好,我们通知您,由于某些原因,您的订单#123456已被取消...”。我该如何使用上述功能设置Magento发送电子邮件,并调用我为该特定情况创建的自定义模板?这是可能的吗?
1个回答

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接