2013-03-06 3 views
0

Я использую свой собственный код для отправки SMS-сообщений клиентам одновременно с отправкой электронных писем. Я делаю это, получив код шаблона электронной почты сзагрузить magento email template

$code = $this->getTemplateCode(); 

, а затем пытается загрузить соответствующий шаблон SMS с

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

я затем проверить, если $sms пуст, прежде чем продолжить, чтобы отправить текст, а это означает, что Я могу добавить или удалить подключенные шаблоны SMS по своему усмотрению. Проблема, с которой я сталкиваюсь, заключается в том, что я иногда, когда нет подключенного шаблона «sms_ *», я получаю полный адрес электронной почты, отправленный как SMS, а не отправляемый текст.

Я отлаживал код, отправляя шаблон, который он пытается загрузить как фактическое SMS, и получил «sms_creditmemo», но когда я вместо этого загружаю его с помощью метода выше и делаю var_dump($sms); exit;, он показывает мне, что он загружен шаблон «creditmemo_invoice», который является почтовым шаблоном, который я использую вместо «creditmemo», когда обнаружен способ оплаты. Я обязательно использую исходную строку шаблона в $code (используется для загрузки шаблона SMS) независимо от способа оплаты.

Теперь мой вопрос заключается в том, как это может быть возможно, делает loadByCode наилучшим подходящим шаблоном или есть еще одна более серьезная ошибка, которую я пропустил, возможно, есть лучшие способы загрузки в шаблоны и правильные проверки посмотрите, существуют ли они вообще?

+0

теперь я заметил, что это происходит только тогда, когда я переопределять оригинальный шаблон электронной почты. Похоже, что 'getTemplateText()' -part берет переопределенный шаблон электронной почты из данных объекта, когда там что-то есть, и на «обычных» шаблонах электронной почты это пусто, так как все это в origData? Возможно, я должен попытаться найти способ создать новый экземпляр для загрузки шаблона SMS или не забудьте удалить данные шаблона объекта .... –

ответ

0

Я решил это проверить, если правильный шаблон электронной почты загружаются с

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