バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > 管理機能 > 受注管理からのメール通知で{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

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,858名です
総投稿数は109,996件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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