2022-09-08 10:25:41 - 米境通
如何在Magento电子邮件模板中获取当前日期?
{{vardateAndTime}}不起作用。我需要获取发送电子邮件的当前日期。
2个答案:
答案0:(得分:5)
您有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-dH:i:s'),//changeformatasneeded.
)
);
然后,您就可以在新订单电子邮件模板中使用{{vardateAndTime}}如果您只想在一个模板中使用日期和时间,这很方便如果您想要更一般的情况,您需要创建自己的指令,请参阅选项2.
选项2创建自己的{{}}指令假设您希望每封电子邮件都使用{{dateAndTime}}打印到当前日期和时间。
您需要重写类Mage_Widget_Model_Template_Filter并为其添加新方法Seethisdetailedexplanationabouthowtodoit。
您的新方法应如下所示:
publicfunctiondateAndTimeDirective($construction){
returnMage::getModel('core/date')->date('Y-m-dH:i:s');
}
你甚至可以把它提升一个档次,并能够将日期格式作为参数传递:
{{dateAndTimeformat="Y-m-d"}}
在这种情况下,处理指令的方法应如下所示:
publicfunctiondateAndTimeDirective($construction){
$params=$this->_getIncludeParameters($construction[2]);
$format=isset($params['format'])?$params['format']:'Y-m-dH:i:s'
returnMage::getModel('core/date')->date($format);
}
答案1:(得分:2)
从管理面板转到您的电子邮件模板。使用块指令如下
当前日期是:
{{blocktype='core/template'area='frontend'template='page/html/date.phtml'}}
现在在模板中创建一个新文件date.phtml,如下所示
app/design/frontend/yourtheme/yourtemplate/page/html/date.phtml
在php标签中添加以下代码(使用php日期函数和回显当前日期,即date('d-m-Y'))
$date=date('d-m-Y');
echo$date;