Magento - 电子邮件变量

时间:2016-07-28 08:26:32

标签: php magento

我想自定义订单确认,我可以看到我可以在模板中使用if语句,否则我可以自定义sendNewOrderEmail()函数,根据一些信息选择两个不同的模板。

但是我想知道因为我使用某些扩展来为客户提供交货日期和时间段。目前,我使用占位符{{layout handle="deliverydate_email_information" order=$order}}来显示投放日期。这个在订单确认中看起来像这样:

Thursday, 28. July, 8pm - 10pm

但我希望在三个占位符中包含这些信息:

{deliverydate_weekday}
{deliverydate_date}
{deliverydate_time}

有人知道如何以可能的方式增强我的Magento系统吗?我假设我可以通过实现自己的layout handle="deliverydate_email_information"来实现,但我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

{deliverydate_weekday} {} deliverydate_date {deliverydate_time}

您需要在sendNewOrderEmail()中定义变量,如下所示(在自定义模块中定义您要发送电子邮件或扩展类。不要编辑代码文件):

    //get the value of $weekday, $deliverydate and $time from your extension 
$vars = Array('deliverydate_weekday' => $weekday,
                  'deliverydate_date' => $deliverydate,
                  'deliverydate_time' => $time);

$storeId = Mage::app()->getStore()->getId();
$translate  = Mage::getSingleton('core/translate');
Mage::getModel('core/email_template')
->setTemplateSubject($mailSubject)
->sendTransactional($templateId, $sender, $email, $name, $vars, $storeId);

您可以将模板文件中的变量用作:

{deliverydate_weekday} {deliverydate_date} {deliverydate_time}

您可以编写如下指令:

    {{if order.getIsNotVirtual()}}
         //some code
    {{else}}
         //some code
    {{/if}}

有关详细信息,请查看以下内容: https://magento.stackexchange.com/questions/5919/send-custom-mail-with-variable-via-script

http://excellencemagentoblog.com/blog/2011/11/25/magento-advanced-transactional-email-templates/

http://www.justwebdevelopment.com/blog/transactional-emails-variable-magento/