バージョン選択
フォーラム
メニュー
オンライン状況
|
|
29 人のユーザが現在オンラインです。 (26 人のユーザが フォーラム を参照しています。) |
|
|
質問 > その他 > 2.12.2で購入時のメール送信先を商品ごとに追加 |
|
その他
投稿者 |
スレッド |
long20th |
投稿日時: 2014/8/6 17:02
対応状況: −−−
|
常連 登録日: 2014/6/25 居住地: 投稿: 35 |
2.12.2で購入時のメール送信先を商品ごとに追加
|
|
|
bucchi |
投稿日時: 2014/8/24 0:38
対応状況: −−−
|
一人前 登録日: 2014/4/28 居住地: 関東 投稿: 72 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 ソース自体は変わっておりませんので、 SC_Helper_Mail.php のpublic function sfSendOrderMail にそちらのスレッド同様のコードを追加すれば、動くと思います。
追加するメールアドレスのカラム指定を見なおしてはいかがでしょうか。
よろしくお願いいたします。
|
|
|
long20th |
投稿日時: 2014/8/25 10:46
対応状況: −−−
|
常連 登録日: 2014/6/25 居住地: 投稿: 35 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 >bucchi様 ありがとうございます。 /* 受注完了メール送信 */
function sfSendOrderMail($order_id, $template_id, $subject = '', $header = '', $footer = '', $send = true) {
$arrTplVar = new stdClass();
$arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
$arrTplVar->arrInfo = $arrInfo;
$objQuery =& SC_Query_Ex::getSingletonInstance();
//ここから追加
$addressList = array();
foreach ($arrOrderDetail as $orderDetail) {
$productId = $orderDetail["product_id"];
// 商品データごとのメールアドレス取得
$arrProduct = $objQuery->select("comment1", "dtb_products", "product_id = ?", array($productId));
$addressList[] = $arrProduct[0]["comment1"];
}
// $addressList[]をBccに利用
$bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
//ここまで
if ($subject == '' && $header == '' && $footer == '') {
// メールテンプレート情報の取得
$where = 'template_id = ?';
$arrRet = $objQuery->select('subject, header, footer', 'dtb_mailtemplate', $where, array($template_id));
$arrTplVar->tpl_header = $arrRet[0]['header'];
$arrTplVar->tpl_footer = $arrRet[0]['footer'];
$tmp_subject = $arrRet[0]['subject'];
} else {
$arrTplVar->tpl_header = $header;
$arrTplVar->tpl_footer = $footer;
$tmp_subject = $subject;
}
としましたが、適用されませんでした。 こちらのコードの記述場所違い、また、SC_Helper_Mail.php以外にも触る必要のあるファイル等あれば、 お教え下さい。 お願い致します。
|
|
|
yuh |
投稿日時: 2014/8/25 14:12
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 $arrOrderDetailが読み込まれてないので、空になります。 $query = ' SELECT * FROM dtb_order_detail WHERE order_id = ? '; $arrOrderDetail = $objQuery->getAll($query,array($order_id)); 等でデータを読みこんだ方がいいと思います。
|
|
|
long20th |
投稿日時: 2014/9/1 9:47
対応状況: −−−
|
常連 登録日: 2014/6/25 居住地: 投稿: 35 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 /* 受注完了メール送信 */
function sfSendOrderMail($order_id, $template_id, $subject = '', $header = '', $footer = '', $send = true) {
$arrTplVar = new stdClass();
$arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
$arrTplVar->arrInfo = $arrInfo;
$objQuery =& SC_Query_Ex::getSingletonInstance();
$addressList = array();
$query = '
SELECT * FROM dtb_order_detail WHERE order_id = ?
';
$arrOrderDetail = $objQuery->getAll($query,array($order_id));
foreach ($arrOrderDetail as $orderDetail) {
$productId = $orderDetail["product_id"];
$arrOrderDetail =
$objQuery->select("*", "dtb_order_detail", $where, array($order_id));
// 商品データごとのメールアドレス取得
$arrProduct = $objQuery->select("comment1", "dtb_products", "product_id = ?", array($productId));
$addressList[] = $arrProduct[0]["comment1"];
}
// $addressList[]をBccに利用
$bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
この様にしてみましたが、ダメでした。 すみません。どの様に記述したらよろしいでしょうか?
|
|
|
yuh |
投稿日時: 2014/9/1 10:37
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 メールアドレス取得に関しては
$product_ids = $objQuery->getCol("product_id",'dtb_order_detail',"order_id = ?",array($order_id));
if(is_array($product_ids) AND count($product_ids) > 0){
$addressList_tmp = $objQuery->getCol('comment1','dtb_products','product_id IN('.implode(",",array_fill(0, count($product_ids), '?')).')',$product_ids);
$addressList = array_unique($addressList_tmp);
}
これでできると思います。
|
|
|
kuro_r |
投稿日時: 2014/9/1 10:45
対応状況: −−−
|
常連 登録日: 2014/8/7 居住地: 投稿: 32 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 long20th 様 一点質問です。 このfunction内では、$order_idが変わることはないと思いますが、 foreachの中で下記コードを実行する必要がありますでしょうか? これでは$arrOrderDetailが毎回書き換わると思います。 さらに、$whereには何も設定されていないようなので条件なしでデータが取得されていませんか?
$arrOrderDetail =
$objQuery->select("*", "dtb_order_detail", $where, array($order_id));
|
|
|
long20th |
投稿日時: 2014/9/1 13:26
対応状況: −−−
|
常連 登録日: 2014/6/25 居住地: 投稿: 35 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 /* 受注完了メール送信 */
function sfSendOrderMail($order_id, $template_id, $subject = '', $header = '', $footer = '', $send = true) {
$arrTplVar = new stdClass();
$arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
$arrTplVar->arrInfo = $arrInfo;
$objQuery =& SC_Query_Ex::getSingletonInstance();
$where = 'order_id = ?';
$addressList = array();
$product_ids = $objQuery->getCol("product_id",'dtb_order_detail',"order_id = ?",array($order_id));
if(is_array($product_ids) AND count($product_ids) > 0){
$addressList_tmp = $objQuery->getCol('comment1','dtb_products','product_id IN('.implode(",",array_fill(0, count($product_ids), '?')).')',$product_ids);
$addressList = array_unique($addressList_tmp);
} foreach ($arrOrderDetail as $orderDetail) {
$productId = $orderDetail["product_id"];
// 商品データごとのメールアドレス取得
$arrProduct = $objQuery->select("comment1", "dtb_products", "product_id = ?", array($productId));
$addressList[] = $arrProduct[0]["comment1"];
}
// $addressList[]をBccに利用
$bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
// $addressList[]をBccに利用
$bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
このような形で組んで見ましたが、 出来ませんでした。 間違い点をご指摘下さいませんか? 宜しくお願い致します。
|
|
|
long20th |
投稿日時: 2014/9/1 13:42
対応状況: −−−
|
常連 登録日: 2014/6/25 居住地: 投稿: 35 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加 /* 受注完了メール送信 */
function sfSendOrderMail($order_id, $template_id, $subject = '', $header = '', $footer = '', $send = true) {
$arrTplVar = new stdClass();
$arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
$arrTplVar->arrInfo = $arrInfo;
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrOrderDetail =
$objQuery->select("*", "dtb_order_detail", $where, array($order_id));
$addressList = array();
$product_ids = $objQuery->getCol("product_id",'dtb_order_detail',"order_id = ?",array($order_id));
if(is_array($product_ids) AND count($product_ids) > 0){
$addressList_tmp = $objQuery->getCol('comment1','dtb_products','product_id IN('.implode(",",array_fill(0, count($product_ids), '?')).')',$product_ids);
$addressList = array_unique($addressList_tmp);
} foreach ($arrOrderDetail as $orderDetail) {
$productId = $orderDetail["product_id"];
// 商品データごとのメールアドレス取得
$arrProduct = $objQuery->select("comment1", "dtb_products", "product_id = ?", array($productId));
$addressList[] = $arrProduct[0]["comment1"];
}
// $addressList[]をBccに利用
$bcc = $arrInfo['email01'] . "," . implode(",", $addressList);
この様に組んで見ましたが、 エラーは出ませんが、メールはcomment1に飛びません。 どの様にしたらよろしいでしょうか?
|
|
|
yuh |
投稿日時: 2014/9/1 13:44
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 2.12.2で購入時のメール送信先を商品ごとに追加
foreach ($arrOrderDetail as $orderDetail) {
$productId = $orderDetail["product_id"];
// 商品データごとのメールアドレス取得
$arrProduct = $objQuery->select("comment1", "dtb_products", "product_id = ?", array($productId));
$addressList[] = $arrProduct[0]["comment1"];
}
この部分が必要ないです。
|
|
|
|
統計情報
総メンバー数は88,838名です
総投稿数は109,985件です
|