EC-Cubeでフォーム別にメールのタイトルを変更する
参考:返信メールテンプレートの追加&編集 EC-CUBE 2.11.2
Smarty/templates/default/mail_templates/
以下にメールのテンプレートを新たに作成する
システム設定>マスターデータ管理
から、
テンプレートのID設定、動的データのパス設定などを行う。
上記で作成したパスを設定する。
で、基本情報管理
–>メール設定
から、静的部分の編集が出来る。
しかし、これだとメールのタイトル部分を動的に出来ない
mail_title.tpl
がメールのタイトルのテンプレートになっているよう。
デフォルトでは以下になってる。
【<!--{$tpl_shopname}-->】 <!--{$tpl_mailtitle}-->
この<!--{$tpl_mailtitle}-->
は、管理画面の基本情報管理>メール設定
から設定したタイトルになるよう。
ここで動的にメールタイトルを変更は可能だけど、色々なパターンに対応、は出来ない。。
もしmail_title.tpl
に例えば以下のような設定をしたとする。
item.value
は表示したい商品名だとする。
[<!--{$arrForm.item.value}-->] <!--{$tpl_mailtitle}-->
これだと、商品名を表示したいメールの場合はうまくいくと思うけれど、
その他のテンプレートを使用したメールでも同じタイトルが使われるので、商品名がないものの場合、おかしくなってしまう。
例えば、お問い合わせ受付、というタイトルのメールだとすると、以下のように商品名が抜けて、カッコのみになってしまうはず。
\[\]お問い合わせ受付
参考:http://www.tokihouse.com/ec-cube/mail/mail_title.html
そうなると、やっぱり直接関数を触らないといけない、のかも。
(EC-CUBE2.11.4)お問い合わせメールの件名に名前を入れる
/data/class/helper/SC_Helper_Mail.php
を修正
テンプレートから静的部分だけを取ってきて表示する、方法がわからなかったので、
$tmp_subject
に直接入れた。
動的にしたかった商品名は引数で渡した。
このSC_Helper_Mail.php
のsfMakeSubject
関数の中で、タイトルにテンプレートを渡す処理をしているので、
その部分を独自のものに変更すれば、テンプレートから変更、も出来るようになるかもしれない。
$subject = $objMailView->fetch('mail_templates/mail_title.tpl');