gpt4 book ai didi

magento - Magento:如何在Magento电子邮件模板中获取当前日期

转载 作者:行者123 更新时间:2023-12-01 00:41:07 32 4
gpt4 key购买 nike

如何在Magento电子邮件模板中获取当前日期?

{{var dateAndTime}}不起作用。我需要获取发送电子邮件的当前日期。

最佳答案

您有2个选择。
选项1.是重写发送电子邮件并传递当前日期作为参数的方法。
例如,假设您要在订单电子邮件中显示日期。
为此,您将需要重写Mage_Sales_Model_Order::sendNewOrderEmail方法。
您需要更改此:

    $mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml
)
);


对此:

   $mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml,
'dateAndTime' => Mage::getModel('core/date')->date('Y-m-d H:i:s'), //change format as needed.
)
);


然后,您将可以在新订单电子邮件模板中使用 {{var dateAndTime}}
如果只想在一个模板中使用日期和时间,这将很方便。
如果需要更一般的情况,则需要创建自己的指令,请参阅选项2。

选项2创建您自己的 {{}}指令。
假设您要在每封电子邮件中使用{{dateAndTime}}打印当前日期和时间。
您需要重写类 Mage_Widget_Model_Template_Filter并为其添加新方法。
See this detailed explanation about how to do it
您的新方法应如下所示:

public function dateAndTimeDirective($construction) {
return Mage::getModel('core/date')->date('Y-m-d H:i:s');
}


您甚至可以将其保留一个档次,并能够像这样将日期格式作为参数传递:

 {{dateAndTime format="Y-m-d"}}


在这种情况下,处理指令的方法应如下所示:

public function dateAndTimeDirective($construction) {
$params = $this->_getIncludeParameters($construction[2]);
$format = isset($params['format']) ? $params['format'] : 'Y-m-d H:i:s'
return Mage::getModel('core/date')->date($format);
}

关于magento - Magento:如何在Magento电子邮件模板中获取当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728937/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com