EC-CUBE、ステータス変更でメールを自動送信する。

ステータスを「入金済み」にしたときに「ご入金確認メール」を自動送信する場合の例です。

メールテンプレートを追加する

/data/Smarty/templates/default/mail_templates/
order_mail.tpl をコピーして hoge_mail.tpl を新規に作成する。

「 管理画面 → システム設定 」で、
mtb_mail_template に追加
mtb_mail_tpl_pass にも追加

ここからが本題の自動送信処理です。

個別にステータスを変えた場合
/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php

/* DB登録処理 */
function lfRegistData($order_id) {
	$objQuery = new SC_Query();

	$objQuery->begin();

	// 入力データを渡す。
	$arrRet =  $this->objFormParam->getHashArray();
	foreach($arrRet as $key => $val) {
		// 配列は登録しない
		if(!is_array($val)) {
			$sqlval[$key] = $val;
		}
	}
	$sqlval['update_date'] = 'Now()';

	if (strlen($sqlval['deliv_date_year']) >= 0) {
		$sqlval['deliv_date'] = $sqlval['deliv_date_year'] . '-' . $sqlval['deliv_date_month'] . '-' . $sqlval['deliv_date_day'];
	}
	unset($sqlval['deliv_date_year']);
	unset($sqlval['deliv_date_month']);
	unset($sqlval['deliv_date_day']);

	unset($sqlval['total_point']);
	unset($sqlval['point']);
	unset($sqlval['commit_date']);

	$where = "order_id = ?";
	
	
	// ここから追加 ------------------------------
	// ここにメール送信処理を書きます。
	// ここまで追加 ------------------------------

	/*
		* XXX 本来なら配列だが, update 関数を string として
		*     チェックしているため...
		*/
	if (!isset($addcol)) $addcol = "";

	// 受注テーブルの更新
	$objQuery->update("dtb_order", $sqlval, $where, array($order_id), $addcol);

一括してステータスを変えた場合の対象ファイル
/data/class/pages/admin/order/LC_Page_Admin_Order_Status.php
ソースコード

コメントを残す