雨ときどき晴れ

最近は C# や Blazor やってます。Raspberry Pi で Node-RED も活用できるようになりました。

EC-CUBE のメルマガで誕生日や都道府県を挿入してみた。

EC-CUBE のメルマガ配信には、
顧客の名前を自動で挿入する機能が実装されています。


でも、「誕生日」や「都道府県」などの別の情報も
自動で挿入できるようになるともっと便利になったりするかもしれません。


ということでやってみた。


編集するファイル

  • /data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php
  • /data/Smarty/tempkates/default/admin/mail/input.tpl
  • /data/Smarty/tempkates/default/admin/mail/template_input.tpl
/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php

メルマガを生成しているクラスファイル。

110行目くらい

//---- メール生成と送信
for( $i = 0; $i < $count; $i++ ) {
  for( $j = 0; $j < count( $list_data[$i] ); $j ++ ) {
    $customerName = "";
    $mailBody = "";
    $sendFlag = "";

    //-- 顧客名の変換
    $name = trim($list_data[$i][$j]["name"]);

    if ($name == "") {
      $name = "お客";
    }
		
    //-- 顧客データの取得
    $sql = "SELECT name01,birth,pref FROM dtb_customer WHERE customer_id = ?";
    $customer_data = $conn->getAll( $sql, array( $list_data[$i][$j]["customer_id"] ) );
		
    //-- 誕生日の取得
    $birth = $customer_data[0]["birth"];
    if ($birth =="") $birthday = "";
    else $birthday = date('n月j日', strtotime($birth));
		
    //-- 都道府県名の取得
    $pref_no = trim($customer_data[0]["pref"]);
    $sql = "SELECT pref_name FROM mtb_pref WHERE pref_id = ?";
    $temp = $conn->getAll( $sql, array( $pref_no ) );  //都道府県テーブルからデータ取得
    $pref = $temp[0]["pref_name"];
		
    $customerName = htmlspecialchars($name);
    $subjectBody = ereg_replace( "{name}", $customerName , $mail_data[$i][0]["subject"] );
    $mailBody = ereg_replace( "{name}", $customerName ,  $mail_data[$i][0]["body"] );
		
    $mailBody = ereg_replace( "{birthday}", $birthday,  $mailBody  );  //誕生日を置換
    $mailBody = ereg_replace( "{pref}", $pref,  $mailBody );           //都道府県名を置換
/data/Smarty/tempkates/default/admin/mail/input.tpl

メルマガの配信内容を設定するページのテンプレート。
今回、設定した項目を追加しておく。

118行目くらい。

<tr>
  <td bgcolor="#f2f1ec" colspan="2" class="fs12n">本文<span class="red"> *</span>(名前は {name} 、誕生日は {birthday} 、都道府県名は {pref} といれてください)</td>
</tr>
/data/Smarty/tempkates/default/admin/mail/template_input.tpl

メルマガのテンプレート内容を設定するページのテンプレート。
上と同様に設定した項目を追加しておく。

108行目くらい

<tr>
  <td bgcolor="#f2f1ec" colspan="2" class="fs12n">本文<span class="red"> *</span>(名前は {name} 、誕生日は {birthday} 、都道府県名は {pref} といれてください)</td>
</tr>


以上です。