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 ); //都道府県名を置換