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