2017-04-07 115 views
0

我想直接在我的電子郵件模板中關於估計發貨日期的郵寄電子郵件格式化日期和時間。Magento自定義電子郵件模板日期格式

我試着這樣說:

{{var order.getShippingArrivalDate() format="Y-m-d"}}

和這樣

{{var order.getShippingArrivalDate()|formatDateTime: Y-m-d}}

即使我想這樣

{{var date("d-m-Y",strtotime(order.getShippingArrivalDate()|formatDateTime: Y-m-d))}}

但這兩種方式都不起作用。是否有可能在電子郵件模板中直接格式化日期/時間?

+0

這看起來不像php,而是javascript。你應該做的是使用普通函數格式化日期,並使用'order.getShippingArrivalDate()'作爲該函數的INPUT。 – digibucc

+0

它是格式化的字符串,用於從對象中獲取** shipping_arrival_date **列數據的數據。 – Parth

+0

我想盡可能多,所以你可以自己獲取這些數據並設置它的格式,或者重新設置這個字符串的格式。你應該能夠使用這個字符串作爲日期函數的輸入。再次這看起來像JavaScript即時通訊不知道如果這只是編碼或什麼的錯誤。 PHP變量以$開頭,通常沒有句點。 – digibucc

回答

0

Magento的電子郵件模板處理器是非常基本的,只有少數的幫助函數,沒有任何格式的日期。而不是在模板中格式化日期,而是將其格式化爲發送電子郵件的類,並將格式化值作爲參數傳遞給模板。

另外,添加順序類中的一個格式化方法(你需要重寫命令模式這樣做):

public function getShippingArrivalDateFormatted ($format) 
{ 
    return Mage::helper('core')->formatDate($this->getShippingArrivalDate(), $format, true); 
} 

然後電子郵件模板內引用它:

<[email protected] 
{"var order.getShippingArrivalDateFormatted('short')":"Arrival Date"} 
@-->   

... 
<p>Arriving on {{var order.getShippingArrivalDateFormatted('short')}}</p> 
+0

是的,謝謝,它對我很有用。 – Parth

+0

如果解決了您的問題,您可以接受此答案作爲解決方案。 –