2013-03-06 118 views
0

我使用自己的代碼在發送電子郵件的同時向客戶發送短信。我通過獲取與加載magento電子郵件模板

$code = $this->getTemplateCode(); 

電子郵件模板代碼,然後嘗試加載相應的短信模板,

$sms = $this->loadByCode('sms_'.$code)->getTemplateText(); 

然後我檢查是否$sms繼續發送文本,這意味着之前是空的做到這一點我可以隨意添加或刪除連接的SMS模板。我遇到的問題是,有時候,當沒有連接的「sms_ *」模板時,我會將完整的電子郵件作爲短信發送出去,而不是發送文本。

我調試了代碼,發出了模板,它嘗試加載爲實際的SMS,並收到「sms_creditmemo」,但是當我使用上述方法加載它並執行var_dump($sms); exit;時,它顯示它已加載當檢測到付款方式時,我使用的是電子郵件模板「creditmemo_invoice」,而不是「creditmemo」。無論付款方式如何,我都確保使用$code(用於加載SMS模板)中的原始模板字符串。

現在我的問題是如何這甚至是可能的,是否loadByCode採取最佳匹配模板或有一些其他更嚴重的錯誤,我錯過了,也許有更好的方法來加載模板,並進行正確的檢查看看他們是否存在?

+0

現在我注意到,當我覆蓋了原來的電子郵件模板這只是發生檢查解決了這個。看起來像'getTemplateText()' - 部分在有東西時從對象數據中取出重寫的電子郵件模板,而在「普通」電子郵件模板中,這是空的,因爲它全部在origData中?也許我應該嘗試找到一種方法來爲SMS模板加載創建一個新實例,或者確保清空對象模板數據.... – 2013-03-06 19:57:17

回答

0

我通過,如果正確的電子郵件模板被加載

if ($this->loadByCode($template)->getTemplateCode() == $template)