2013-05-21 87 views
1

我見過大量文章(主要是3-5歲),詳細介紹了將客戶的名字寫入訂單確認電子郵件的各種方法,但我只是得到空白或未分析的PHP。在訂單確認電子郵件中使用客戶名字

例如這樣的:

<?php echo $this->__('Hello, %s', Mage::getSingleton('customer/session')->getCustomer()->getFirstname()); ?> 

呈現在電子郵件中這樣的:

__( '你好,%s' 的,法師:: getSingleton( '客戶/會話') - > GETCUSTOMER() - >的getFirstName()); ?>

有人可以指出我在正確的方向嗎?這是在社區版1.7上。

感謝

回答

4

將帖子你不能在你的電子郵件的模板直接使用PHP代碼。如果要將動態數據插入到您的電子郵件模板中,您有兩種可能性:

a)在每個交易電子郵件中,您可以訪問負責交易電子郵件的模型的方法,它是:for處理訂單的郵件,這是訂單模型,處理郵件的郵件,這是通訊模型等等。您可以使用語法訪問方法:

{{var model.method()}} 

所以,你的情況,在訂單確認電子郵件訪問客戶的名字,你需要尋找的順序模型中花呢方法,這是getCustomerFirstname() 。 然後就可以調用它,給定的語法如下:

{{var order.getCustomerFirstname()}} 

b)你可以通過創建自定義PHTML - 模板,包括到您的電子郵件模板包括動態數據到您的電子郵件模板{{塊}}指令(如下面評論中的benmark指出的那樣)

+1

雖然你的答案是合適的,但「你不能在你的電子郵件模板中使用PHP代碼」應該是合格的。消息正文的內容不會被解析爲PHP,而是通過{{block}}參數查看包含PHP解析內容(模板)的訂單模板。 – benmarks

+0

以下內容不幸輸出: {{var customer.getFirstName()}} –

+0

@petergunn感謝您的更新。因爲Order模型只有getCustomerName()方法,而不是getCustomerFirstName()方法,所以這很有意義。情況就是這樣,它看起來像選項b是我必須去的方式 –

相關問題