2017-04-07 10 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です。あなたがしなければならないことは、通常の関数を使って日付をフォーマットし、その関数のINPUTとして 'order.getShippingArrivalDate()'を使用することです。 – digibucc

+0

オブジェクトからの** shipping_arrival_date **列データのデータを取得するためにフォーマットされた文字列です。 – Parth

+0

私は多くのことを考え出したので、自分でデータを入手してフォーマットするか、この文字列を再フォーマットすることができます。この文字列を日付関数の入力として使用できるはずです。もう一度これはジャバスクリプトのように見えますが、それは単なるコーディングのミスか何かです。 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

問題を解決した場合、この回答を解決策として受け入れることができます。 –

関連する問題