2013-03-06 122 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)