你有2个选择.
选项1. 是重写发送电子邮件的方法并将当前日期作为参数传递.
例如,假设您要在电子邮件订单中显示日期.
为此,您需要重写该Mage_Sales_Model_Order::sendNewOrderEmail方法.
你需要改变这个:
$mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml
)
);
Run Code Online (Sandbox Code Playgroud)
对此:
$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.
)
);
Run Code Online (Sandbox Code Playgroud)
然后,您就可以{{var dateAndTime}}在新订单中使用电子邮件模板.
如果您只想在一个模板中使用日期和时间,这很方便.
如果您想要更一般的情况,您需要创建自己的指令,请参阅选项2.
选项2创建自己的{{}}指令.
假设您希望在每封电子邮件中使用{{dateAndTime}}打印到当前日期和时间.
您需要重写该类Mage_Widget_Model_Template_Filter并为其添加新方法.
请参阅有关如何执行此操作的详细说明.
您的新方法应如下所示:
public function dateAndTimeDirective($construction) {
return Mage::getModel('core/date')->date('Y-m-d H:i:s');
}
Run Code Online (Sandbox Code Playgroud)
你甚至可以把它提升一个档次,并能够将日期格式作为参数传递,如下所示:
{{dateAndTime format="Y-m-d"}}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,处理指令的方法应如下所示:
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5739 次 |
| 最近记录: |