0

私は自分のコードを使用して、電子メールの送信と同時に顧客にSMSを送信しています。これを行うには、次のメールテンプレートコードを取得します

$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が最も一致するテンプレートを取得するか、または私が見逃した他のより深刻なバグがあるか、テンプレートをロードして正しいチェックを行い、それらがさえあるかどうかを確認するより良い方法があるかどうかです。存在?

4

1 に答える 1

0

正しいメールテンプレートが読み込まれるかどうかを確認することで、これを解決しました

if ($this->loadByCode($template)->getTemplateCode() == $template)
于 2013-03-07T07:19:44.910 に答える