お問い合わせフォームで選択された宛先に応じて、一部テキストの表示を変えたい

お世話になっております。
掲題の件、ご質問です。

お問い合わせフォームで選ばれた宛先に応じて、
問い合わせ受付完了メールに電話番号をテキストで記載しようとしています。
しかしながら、おそらく/html/theme/(テーマファイル)/Emails/textの
フォルダ内のphpフォルダを触るしかないということ以外推測ができていない状況です。
不足している情報についてはご質問いただいた際にお伝えしますので、
どなたかお知恵を貸していただけないでしょうか。

【環境情報】
・baserCMSのバージョン:baserCMS 4.1.5
・レンタルサーバー名:KDDI ACE01
・使用テーマ:カスタマイズされているもの
・PHPスキル(自己評価): E

以上、不躾なスレッド建てで申し訳ございません。
お知恵を拝借できれば幸甚です。
何卒よろしくお願い申し上げます。

ご要望は、問い合わせフォーム内の選択項目に応じて、対応する部門などが違う場合、返信メールの末尾の連絡先(シグニチャー)を差し替えたいというイメージと想定しました。

方法(運用面も含めて)は、いくつかある様に思いますが、ご指摘の様に/theme/テーマ名/Emails/text/内の自動送信用のメールテンプレートファイルに手を入れるという方法になるかと思います。

ざっくりとした手順は以下。

  1. 差し替える連絡先シグニチャーを準備する。
  2. 連絡先差し替え用の条件分岐コードを記載したエレメントファイル(仮に /theme/テーマ名/Emails/text/mail_data_div_tel.php )を作成する。
  3. 現在利用しているメールテンプレートファイル(仮に /theme/テーマ名/Emails/text/mail_default.php )をコピーしてリネーム(仮に mail_second.php )する。
  4. 作成したmail_second.php内の差し替えたい連絡先のコード部分にエレメントファイル呼び出し関数を挿入する。
  5. 管理画面のメールフォーム設定画面>詳細設定>送信メールテンプレート名欄で mail_second.php をテンプレートファイルとして選択する。

2.項で作成する mail_data_div_tel.php は、既存のコード(管理画面>プラグイン管理>メール基本設定で設定する)と分けて追記挿入する格好なのか、打ち消して書き換えるのかで多少違いますが、サンプルのコードは追記挿入するイメージで記載しています。swich文を使った方がシンプルな気がしますが、書き換えたい連絡先電話番号に付随して表示させたい部門名を追記したり、改行したりしたいケースを想定すると素直にif文の方が扱いやすいかもしれません。

以下、mail_data_div_tel.php のサンプルコード。

<?php foreach ($mailFields as $field): ?>
<?php $field = $field['MailField'] ?>
<?php // 'div_tel'は、条件分岐の選択項目のフィールド名 ?>
<?php if ($field['field_name'] === 'div_tel'): ?>
<?php $pref = trim($this->Maildata->control($field['type'], $message[$field['field_name']], $this->Mailfield->getOptions($field))) ?>
<?php if ($pref === 'a事業部'): ?>
<?php echo 'a事業部' ?> 
 <?php echo '111-1111' ?> 
<?php elseif ($pref === 'b事業部'): ?>
<?php echo 'b事業部' . PHP_EOL . ' ', '222-2222' ?> 
<?php elseif ($pref === 'c事業部'): ?>
<?php echo 'c事業部', ' ', 'cc部門' . PHP_EOL . ' ', '333-3333' ?> 
<?php elseif ($pref === 'd事業部'): ?>
<?php echo 'd事業部' ?> 
 <?php echo '444-4444' ?> 
<?php elseif ($pref === 'e事業部'): ?>
<?php echo 'e事業部' ?> 
 <?php echo '555-5555' ?> 
<?php else: ?>
<?php echo 'f事業部' ?> 
 <?php echo '666-6666' ?> 
<?php endif ?>
<?php endif ?>
<?php endforeach ?>

上記の$prefの文字列は、条件分岐の選択項目のリスト内容に合わせて変更してください。

ここで、コメントアウトに記載した「条件分岐の選択項目のフィールド名」というのは、以下の様なイメージです。


次に、mail_second.php内のmail_data_div_tel.php呼出箇所が以下です。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 <?php echo $mailConfig['site_name']; ?> 
 <?php echo $mailConfig['site_url'] ?> <?php echo $mailConfig['site_email']; ?> 
 <?php if ($mailConfig['site_tel']): ?>TEL <?php echo $mailConfig['site_tel']; ?><?php endif; ?> 
 <?php if ($mailConfig['site_fax']): ?>FAX <?php echo $mailConfig['site_fax']; ?><?php endif; ?> 
 <?php echo $this->element('../Emails/text/mail_data_div_tel') ?> 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

メール内のテキストレイアウトを調整するためにphpコードの前後にスペースを入れたりする必要があり、ちょっと独特ですが、何度か trial and error してみると合点がいくと思います。

「いいね!」 1