2016-07-28 86 views
0

我想自定義我的訂單確認,我可以看到我可以在我的模板中使用if語句,否則我可以自定義sendNewOrderEmail()函數以基於某些信息選擇兩個不同的模板。Magento - 電子郵件變量

但是我想知道,因爲我使用某些擴展來爲客戶提供交貨日期和時間段。目前我使用佔位符{{layout handle="deliverydate_email_information" order=$order}}來顯示交貨日期。這一個看起來像這樣的訂單確認:

Thursday, 28. July, 8pm - 10pm 

但我想有這些類型的信息在三個佔位符,如:

{deliverydate_weekday} 
{deliverydate_date} 
{deliverydate_time} 

有誰知道我怎樣才能提高我的Magento系統中的這可能嗎?我認爲我可以通過實施自己的layout handle="deliverydate_email_information"來做到這一點,但我該怎麼做?

謝謝!

回答

0

對於{deliverydate_weekday} {deliverydate_date} {deliverydate_time}

您需要定義sendNewOrderEmail()如下所示的變量(定義自定義模塊,在您發送電子郵件或擴展類不要編輯代碼文件):

//get the value of $weekday, $deliverydate and $time from your extension 
$vars = Array('deliverydate_weekday' => $weekday, 
        'deliverydate_date' => $deliverydate, 
        'deliverydate_time' => $time); 

$storeId = Mage::app()->getStore()->getId(); 
$translate = Mage::getSingleton('core/translate'); 
Mage::getModel('core/email_template') 
->setTemplateSubject($mailSubject) 
->sendTransactional($templateId, $sender, $email, $name, $vars, $storeId); 

您可以使用模板文件中的變量爲:

{deliverydate_weekday} {deliverydate_date} {deliverydate_time} 

你可以寫,如果使用這樣的指令:

{{if order.getIsNotVirtual()}} 
     //some code 
    {{else}} 
     //some code 
    {{/if}} 

欲瞭解更多信息,你可以檢查這些: https://magento.stackexchange.com/questions/5919/send-custom-mail-with-variable-via-script

http://excellencemagentoblog.com/blog/2011/11/25/magento-advanced-transactional-email-templates/

http://www.justwebdevelopment.com/blog/transactional-emails-variable-magento/