2022-09-08 10:25:41 - 米境通
如何在Magento電子郵件模板中獲取當(dāng)前日期?
{{vardateAndTime}}不起作用。我需要獲取發(fā)送電子郵件的當(dāng)前日期。
2個(gè)答案:
答案0:(得分:5)
您有2個(gè)選項(xiàng)選項(xiàng)1。是重寫發(fā)送電子郵件的方法并將當(dāng)前日期作為參數(shù)傳遞。
例如,假設(shè)您要在電子郵件的訂單中顯示日期為此,您需要重寫Mage_Sales_Model_Order::sendNewOrderEmail方法你需要改變這個(gè):
$mailer->setTemplateParams(array(
'order'=>$this,
'billing'=>$this->getBillingAddress(),
'payment_html'=>$paymentBlockHtml
)
);
對(duì)此:
$mailer->setTemplateParams(array(
'order'=>$this,
'billing'=>$this->getBillingAddress(),
'payment_html'=>$paymentBlockHtml,
'dateAndTime'=>Mage::getModel('core/date')->date('Y-m-dH:i:s'),//changeformatasneeded.
)
);
然后,您就可以在新訂單電子郵件模板中使用{{vardateAndTime}}如果您只想在一個(gè)模板中使用日期和時(shí)間,這很方便如果您想要更一般的情況,您需要?jiǎng)?chuàng)建自己的指令,請(qǐng)參閱選項(xiàng)2.
選項(xiàng)2創(chuàng)建自己的{{}}指令假設(shè)您希望每封電子郵件都使用{{dateAndTime}}打印到當(dāng)前日期和時(shí)間。
您需要重寫類Mage_Widget_Model_Template_Filter并為其添加新方法Seethisdetailedexplanationabouthowtodoit。
您的新方法應(yīng)如下所示:
publicfunctiondateAndTimeDirective($construction){
returnMage::getModel('core/date')->date('Y-m-dH:i:s');
}
你甚至可以把它提升一個(gè)檔次,并能夠?qū)⑷掌诟袷阶鳛閰?shù)傳遞:
{{dateAndTimeformat="Y-m-d"}}
在這種情況下,處理指令的方法應(yīng)如下所示:
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)
從管理面板轉(zhuǎn)到您的電子郵件模板。使用塊指令如下
當(dāng)前日期是:
{{blocktype='core/template'area='frontend'template='page/html/date.phtml'}}
現(xiàn)在在模板中創(chuàng)建一個(gè)新文件date.phtml,如下所示
app/design/frontend/yourtheme/yourtemplate/page/html/date.phtml
在php標(biāo)簽中添加以下代碼(使用php日期函數(shù)和回顯當(dāng)前日期,即date('d-m-Y'))
$date=date('d-m-Y');
echo$date;