バージョン選択

フォーラム

メニュー

オンライン状況

25 人のユーザが現在オンラインです。 (10 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 25
もっと...

サイト内検索

バグ報告 > 管理機能 > 受注管理からのメール通知で{order}の差込がおかしい

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ramrun
投稿日時: 2007/10/3 11:08
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 受注管理からのメール通知で{order}の差込がおかしい
自分のところでやった対策を書いておきます。

まず、slibのsfSendOrderMailについて。

受注完了時の自動送信メールは
template_idが1または2が送られます。

現状では{order}の処理が下記のようになってます。
// 受注動的部分を取得
$body = $objMailView->fetch($arrMAILTPLPATH[$template_id]);
$body = ereg_replace( "(\{order\})", $body ,  $objPage->tpl_body );

$arrMAILTPLPATH[$template_id])の部分は$arrMAILTPLPATH[$send_type])とする必要があります。

またdtb_mailtemplateのsend_typePC用:0、携帯用:1をPC用:1、携帯用:2と変更しておきます。

template_idからsend_typeを取得する必要が出てきますので、受注動的部分の取得は
// 受注動的部分を取得
$where = "template_id = ?";
$arrRet = $objQuery->get("dtb_mailtemplate", "send_type", $where, array($template_id));
$send_type = $arrRet[0]['send_type'];
$body = $objMailView->fetch($arrMAILTPLPATH[$send_type]);
$body = ereg_replace( "(\{order\})", $body ,  $objPage->tpl_body );

としました。

しかしこれだけだと、管理画面の受注管理からメール通知する際にずれます。
管理画面からのテンプレートではtemplate_idが0から始まっているためで、それを1からに変更するためにはSC_FormParam.phpが絡んでくるためいじっては不味そうです。

/html/admin/order/mail.phpにて、case 'change'で行っている処理

//テンプレートファイルで選択されたテンプレート名をテンプレートIDと関連付ける
$_POST['template_id'] = $arrTemplate[0][$_POST['template_id']];

をcase 'send'とcase 'confirm'の処理に追加します。

case 'send'
// メールの送信
if (count($objPage->arrErr) == 0) {
	//テンプレートファイルで選択されたテンプレート名をテンプレートIDと関連付ける
	$_POST['template_id'] = $arrTemplate[0][$_POST['template_id']];
	// 注文受付メール
	sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['body']);
}


case 'confirm'
	// メールの送信
if (count($objPage->arrErr) == 0) {
	//テンプレートファイルで選択されたテンプレート名をテンプレートIDと関連付ける
	$_POST['template_id'] = $arrTemplate[0][$_POST['template_id']];
	// 注文受付メール(送信なし)
	$objSendMail = sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['body'], false);
	// 確認ページの表示

これでとりあえず対策できたっぽい気がします...


改造していて気づいたのですが
$objQuery->get("dtb_mailtemplate", "send_type", $where, array($template_id));
$objQuery->select("send_type", "dtb_mailtemplate", $where, array($template_id));

getとselectではテーブルとカラムの引数が逆ですね。

統一したほうがいいように思います。

-----------------------------------------------------------
10/4追記

メールテンプレを更新すると、テンプレからPOSTされてくるのがやはり0、1なので、せっかく1、2にしたsend_typeが戻ってしまいます。

/html/admin/basis/mail.phpで1つ加算しておきました。
function lfConvertParam($array) {
	
    $new_array["send_type"] = $array["send_type"] + 1;
	$new_array["template_id"] = $array["template_id"];

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   受注管理からのメール通知で{order}の差込がおかしい ゲスト 2007/10/2 11:22
     Re: 受注管理からのメール通知で{order}の差込がおかしい ramrun 2007/10/2 11:24
       Re: 受注管理からのメール通知で{order}の差込がおかしい adachi 2007/10/2 16:01
         Re: 受注管理からのメール通知で{order}の差込がおかしい ramrun 2007/10/2 18:30
           Re: 受注管理からのメール通知で{order}の差込がおかしい homan 2007/10/2 18:57
           » Re: 受注管理からのメール通知で{order}の差込がおかしい ramrun 2007/10/3 11:08

 



ログイン



統計情報

総メンバー数は74,626名です
総投稿数は104,055件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2202
5
umebius
2074
6
yuh
1664
7
red
1498
8
h_tanaka
1188
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.