我想自定义我的订单确认,我可以在我的模板中使用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"来做到这一点,但是我该怎么做呢?
谢谢!
发布于 2016-07-28 17:09:06
对于{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}您可以像这样编写use if指令:
{{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/
https://stackoverflow.com/questions/38630922
复制相似问题