(EC-CUBE2.11.4)お問い合わせメールの件名に名前を入れる

EC CUBE

EC CUBE

お問い合わせから来たメールで

メールが埋もれてしまい

探すのに苦労すると言われたので

件名に問い合わせした方の名前を入れるようにカスタマイズしました。

スポンサードリンク

1./data/class/helper/SC_Helper_Mail.phpを修正

sfSendTemplateMailメソッドをコピーしてsfContactSendTemplateMailメソッドを作成

sfSendTemplateMailメソッドの下に以下のメソッドを記述

    /* お問い合わせ用(追加)
     * DBに登録されたテンプレートメールの送信 */
    function sfContactSendTemplateMail($to, $to_name, $template_id, &$objPage, $from_address = "", $from_name = "", $reply_to = "", $name = "", $bcc = '') {

    	$objQuery = new SC_Query_Ex();
    	// メールテンプレート情報の取得
    	$where = "template_id = ?";
    	$arrRet = $objQuery->select("subject, header, footer", "dtb_mailtemplate", $where, array($template_id));
    	$objPage->tpl_header = $arrRet[0]['header'];
    	$objPage->tpl_footer = $arrRet[0]['footer'];
    	$tmp_subject = $arrRet[0]['subject'];

    	$arrInfo = SC_Helper_DB_Ex::sfGetBasisData();

    	$objMailView = new SC_SiteView_Ex();
    	// メール本文の取得
    	$objMailView->assignobj($objPage);
    	$body = $objMailView->fetch($this->arrMAILTPLPATH[$template_id]);

    	// メール送信処理
    	$objSendMail = new SC_SendMail_Ex();
    	if ($from_address == "") $from_address = $arrInfo['email03'];
    	if ($from_name == "") $from_name = $arrInfo['shop_name'];
    	if ($reply_to == "") $reply_to = $arrInfo['email03'];
    	$error = $arrInfo['email04'];
    	$tosubject = $name . "様より" . $this->sfMakeSubject($tmp_subject, $objMailView);

    	$objSendMail->setItem('', $tosubject, $body, $from_address, $from_name, $reply_to, $error, $error, $bcc);
    	$objSendMail->setTo($to, $to_name);
    	$objSendMail->sendMail();    // メール送信
    }

2./data/class/pages/contact/LC_Page_Contact.phpを修正

一番下のlfSendMailメソッドを修正

    /**
     * メールの送信を行う。
     *
     * @return void
     */
    function lfSendMail(&$objPage){
        $CONF = SC_Helper_DB_Ex::sfGetBasisData();
        $objPage->tpl_shopname = $CONF['shop_name'];
        $objPage->tpl_infoemail = $CONF['email02'];
        $fromMail_name = $objPage->arrForm['name01']['value'] ." 様";
        $fromMail_address = $objPage->arrForm['email']['value'];
        $helperMail = new SC_Helper_Mail_Ex();
        $helperMail->sfSendTemplateMail(
            $objPage->arrForm['email']['value'],            // to
            $objPage->arrForm['name01']['value'] .' 様',    // to_name
            5,                                              // template_id
            $objPage,                                       // objPage
            $CONF['email03'],                               // from_address
            $CONF['shop_name'],                             // from_name
            $CONF['email02'],                               // reply_to
            $objPage->arrForm['name01']['value'] ." ". $objPage->arrForm['name02']['value'] //問い合わせ者の名前
            $CONF['email02']                                // bcc
        );
    }

解説

あとは実際にお問い合わせから入力してみて

名前が件名に入っているか確認してください。

SC_Helper_Mail.phpのsfSendTemplateMailメソッド自体を書き換えようとしましたが、

他のメール送信に影響があるかもしてないので

新しくsfContactSendTemplateMailメソッドを作成しました。

フォームから入力された値を引数に入れて

ただDBから拾ってくる件名にくっつけているだけです。

そんなに難しくなくカスタマイズしました。

EC-CUBE公式完全ガイド[ver 2.12/2.11対応] ECサイト構築・カスタマイズ・運用のすべて

新品価格
¥3,218から
(2015/1/27 23:12時点)

スポンサードリンク

コメントを残す

サブコンテンツ

このページの先頭へ