バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 退会時のメール自動配信

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
GonGon
投稿日時: 2015/11/8 19:21
対応状況: −−−
常連
登録日: 2008/7/10
居住地: 東京都
投稿: 64
退会時のメール自動配信
下記スレッドを参考にさせて頂き、退会時の自動配信を行ったのですが、inf61様も書いておられますが、メール送信先とメール本文の宛名がログインしている会員と別の会員(顧客IDが一番若い会員の名前)が表示がされてしまいます。
確認画面や、実際に削除される会員はログインしているものになります。
対処方法をご教示頂ければ幸いです。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=9519&forum=11

下記ソースになります。

LC_Page_Mypage_Refusal.php
case 'complete':
            $objCustomer = new SC_Customer_Ex();
            $this->lfDeleteCustomer($objCustomer->getValue('customer_id'));
			
			$mailHelper = new SC_Helper_Mail_Ex();
	        $mailHelper->sfSendRefusalMail($objCustomer->getValue('customer_id'),
                                     SC_MobileUserAgent_Ex::isMobile() ? 2 : 1);
			
            $objCustomer->EndSession();
            SC_Response_Ex::sendRedirect('refusal_complete.php');
        }


SC_Helper_Mail.php
/**
     * 退会メールを送信する。
     *
     * @param string $secret_key 会員固有キー
     * @param integer $customer_id 顧客ID
     * @param boolean $is_mobile false(default):PCアドレスにメールを送る true:携帯アドレスにメールを送る
     * @return boolean true:成功 false:失敗
     */
    function sfSendRefusalMail($secret_key, $customer_id = '', $is_mobile = false) {
        // 会員データの取得
if(SC_Utils_Ex::sfIsInt($customer_id)) {
    $arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id);
}else{
    $arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId('', "secret_key = ?", array($secret_key));
    }
if(SC_Utils_Ex::isBlank($arrCustomerData)) {
    return false;
}
		
    $CONF = SC_Helper_DB_Ex::sfGetBasisData();
		
    $objMailText = new SC_SiteView_Ex();
    $objMailText->assign('CONF', $CONF);
    $objMailText->assign("name01", $arrCustomerData['name01']);
    $objMailText->assign("name02", $arrCustomerData['name02']);
    $objMailText->assign('uniqid', $arrCustomerData['secret_key']);
    $objMailText->assignobj($toRegisted);
    $objMailText->assignobj($arrCustomerData);
    $objMailText->assignobj($this);

    $objHelperMail  = new SC_Helper_Mail_Ex();
		
    $subject        = $objHelperMail->sfMakeSubject('退会のご確認', $objMailText);
    $toCustomerMail = $objMailText->fetch("mail_templates/refusal_mail.tpl");
    $objMail = new SC_SendMail();
    $objMail->setItem(
    ''                    // 宛先
    , $subject              // サブジェクト
    , $toCustomerMail       // 本文
    , $CONF["email03"]    // 配送元アドレス
    , $CONF["shop_name"]    // 配送元 名前
    , $CONF["email03"]     // reply_to
    , $CONF["email04"]      // return_path
    , $CONF["email04"]      // Errors_to
    , $CONF["email01"]      // Bcc
  );
// 宛先の設定      
  $to_addr = $arrCustomerData['email'];
		
  $objMail->setTo($to_addr, $arrCustomerData["name01"] . $arrCustomerData["name02"] ." 様");
  
  $objMail->sendMail();		
  return true;
}


refusal_mail.tpl

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 ※本メールは、
 <!--{$CONF.shop_name}-->より会員登録を希望された方に
 お送りしています。
 もしお心当たりが無い場合は、
 その旨<!--{* 問い合わせ受付メール *}--><!--{$CONF.email02}-->まで
 ご連絡いただければ幸いです。
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

<!--{$name01}--><!--{$name02}--> 様

<!--{$CONF.shop_name}-->でございます。

退会処理がが完了いたしました。

<!--{$CONF.shop_name}-->をご利用いただき誠にありがとうございました。

またのご利用を心よりお待ち申し上げます。


よろしくお願いいたします。

EC-CUBEバージョン 2.11.5
PHPバージョン PHP 5.4.45
DBバージョン MySQL 5.5.38-log
kitagawa
投稿日時: 2015/11/9 10:24
対応状況: −−−
半人前
登録日: 2015/4/1
居住地:
投稿: 28
Re: 退会時のメール自動配信
GonGon様

sfSendRefusalMailの引数が足りないため
モバイルフラグの値がカスタマーIDになってしまっているようです。

LC_Page_Mypage_Refusal.phpの
sfSendRefusalMailの呼び出しの第一引数に
適当な値を渡してあげれば問題なく動作します。


----------------
****************************************
株式会社システムフレンド
北川 浩也(Hiroya Kitagawa)
改造専門店・EC-CUBE工房
****************************************

GonGon
投稿日時: 2015/11/10 11:19
対応状況: −−−
常連
登録日: 2008/7/10
居住地: 東京都
投稿: 64
Re: 退会時のメール自動配信
kitagawa 様

ご教示、ありがとうございます!
ご指摘通り、sfSendRefusalMailの引数を変更したら無事動作いたしました。

下記、変更後のソースです。

LC_Page_Refusal.php
case 'complete':
            $objCustomer = new SC_Customer_Ex();
            $this->lfDeleteCustomer($objCustomer->getValue('customer_id'));
			
			$mailHelper = new SC_Helper_Mail_Ex();
	        $mailHelper->sfSendRefusalMail($objCustomer->getValue('customer_id'));
			
            $objCustomer->EndSession();
            SC_Response_Ex::sendRedirect('refusal_complete.php');
        }


SC_Helper_Mail
/**
     * 退会メールを送信する。
     *
     * @param string $secret_key 会員固有キー
     * @param integer $customer_id 顧客ID
     * @return boolean true:成功 false:失敗
     */
    function sfSendRefusalMail($customer_id = '') {
        // 会員データの取得
if (SC_Utils_Ex::sfIsInt($customer_id)) { 
 		            $arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id); 
 		        } 
 		        if (SC_Utils_Ex::isBlank($arrCustomerData)) { 
 		            return false; 
 		        } 
		
    $CONF = SC_Helper_DB_Ex::sfGetBasisData();
		
    $objMailText = new SC_SiteView_Ex();
    $objMailText->assign('CONF', $CONF);
    $objMailText->assign("name01", $arrCustomerData['name01']);
    $objMailText->assign("name02", $arrCustomerData['name02']);
    $objMailText->assignobj($toRegisted);
    $objMailText->assignobj($arrCustomerData);
    $objMailText->assignobj($this);

    $objHelperMail  = new SC_Helper_Mail_Ex();
		
    $subject        = $objHelperMail->sfMakeSubject('退会のご確認', $objMailText);
    $toCustomerMail = $objMailText->fetch("mail_templates/refusal_mail.tpl");
    $objMail = new SC_SendMail();
    $objMail->setItem(
    ''                    // 宛先
    , $subject              // サブジェクト
    , $toCustomerMail       // 本文
    , $CONF["email03"]    // 配送元アドレス
    , $CONF["shop_name"]    // 配送元 名前
    , $CONF["email03"]     // reply_to
    , $CONF["email04"]      // return_path
    , $CONF["email04"]      // Errors_to
    , $CONF["email01"]      // Bcc
  );
// 宛先の設定      
  $to_addr = $arrCustomerData['email'];
		
  $objMail->setTo($to_addr, $arrCustomerData["name01"] . $arrCustomerData["name02"] ." 様");
  
  $objMail->sendMail();		
  return true;
}
GonGon
投稿日時: 2015/11/10 11:46
対応状況: −−−
常連
登録日: 2008/7/10
居住地: 東京都
投稿: 64
Re: 退会時のメール自動配信
kitagawa 様

度々で誠に恐縮ですが、会員本人へメールが送信されるようになったのですが、
同じ退会メールが会員本人に2通送信されるようになってしまいました。
Bccへは送信されています。ですので、計3通送信されています。

引き続きご教示頂ければ幸いです。
よろしくお願いいたします。
GonGon
投稿日時: 2015/11/10 12:16
対応状況: −−−
常連
登録日: 2008/7/10
居住地: 東京都
投稿: 64
Re: 退会時のメール自動配信
kitagawa 様

度々、申し訳ございません。

LC_Page_Mypage_Refual.phpを
下記のようにしたら、会員本人にも1通のメール送信になりました。

case 'confirm':
            $this->tpl_mainpage     = 'mypage/refusal_confirm.tpl';
            $this->tpl_subtitle     = '退会手続き(確認ページ)';
			
			$aaa = $_SESSION['customer'];
            $bbb = $aaa['customer_id'];
            $mailHelper = new SC_Helper_Mail_Ex();
            $mailHelper->sfSendRefusalMail($bbb);
			
            break;


case 'confirm':
            $this->tpl_mainpage     = 'mypage/refusal_confirm.tpl';
            $this->tpl_subtitle     = '退会手続き(確認ページ)';
			
            break;


この度は、誠ににありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.