サポート » プラグイン » ContactForm7 選択肢ごとに返信メールに記載する文章を変えたい

  • 解決済 acccoo

    (@acccoo)



    ContactForm7を使って見積もりフォームを作成していますが
    商品をチェックボックスで選択させて
    その選択肢によって返信メールに記載される文章を変更したいです。

    例えば・・・
    contactForm7 設定側
    [checkbox_custom* checkbox_custom-25 exclusive "3000|りんご" "2500|いちご" "4000|すいか" "10000|メロン" "8000|マンゴー" "1500|トマト"]

    value値を表側と裏側とで分けたいのでcheckbox_customを使用しました。
    フォームの画面では「リンゴ」「いちご」といった商品名を表示させ、裏でCalculatedで合計金額を算出し、
    その金額も返信メールに記載しています。

    返信メールの条件分岐でググって出てきたコードを少し変えて
    functions.phpに以下を追加してみました。

    add_filter( 'wpcf7_special_mail_tags', 'my_special_mail_tags', 10, 2 );
    function my_special_mail_tags( $output, $name ) {
        $name = preg_replace( '/^wpcf7\./', '_', $name );
        if ( '_checkbox_custom-25' == $name ) {
            $a = 'りんご';
            $b = 'いちご';
            $c = 'すいか';
            $d = 'メロン';
            $e = 'マンゴー';
            $f = 'トマト';
            $name = 'checkbox_custom-25';
    
            if ( $_POST[ $name ] == $a ) {
                $output .= 'リンゴの文章が入ります。';
            } elseif ( $_POST[ $name ] == $b ) {
                $output .= 'いちごの文章が入ります。'."\n";
                $output .= 'いちご案内文2行目';
            } elseif ( $_POST[ $name ] == $c ) {
                $output .= 'すいか'."\n";
                $output = 'すいか案内文2行目';
            } elseif ( $_POST[ $name ] == $d ) {
                $output .= 'メロン'."\n";
                $output .= 'メロン案内文2行目';
            } elseif ( $_POST[ $name ] == $e ) {
                $output .= 'マンゴー'."\n";
                $output .= 'マンゴー案内文2行目';
            } elseif ( $_POST[ $name ] == $f ) {
                $output .= 'トマト'."\n";
                $output .= 'トマト案内文2行目';
            } 
            return $output;
        }
    }

    ここで独自のタグ「_checkbox_custom-25」を設定して、それを返信メール側に追加したのですが・・
    そのままの文字列「_checkbox_custom-25」が表示されてしまいます。

    if ( '_checkbox_custom-25' == $name ) {
            $a = '3000|りんご';
            $b = '2500|いちご';
            $c = '4000|すいか';
            $d = '10000|メロン';
            $e = '8000|マンゴー';
            $f = '1500|トマト';
            $name = 'checkbox_custom-25';

    こんな風に変更してみてもダメでした・・・。

    PHPはググってコピペ、ちょっとカスタマイズレベルの知識しかありません。。
    お知恵をかしていただけますでしょうか・・・。

    どうぞよろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • gblsm

    (@gblsm)

    $_POST[何々] を見るのは違うんじゃないでしょうか。
    下記ページのコードは別の方法を使っていますよ。

    Contact Form 7 のテンプレートに独自のタグを入れてその内容をセットする方法
    http://aroundthedistance.hatenadiary.jp/entry/2015/05/13/124344

    acccoo

    (@acccoo)

    ありがとうございます!!
    $_POST[何々]部分を教えていただいたサイトの方法に
    変更したら振り分けができました!!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「ContactForm7 選択肢ごとに返信メールに記載する文章を変えたい」には新たに返信することはできません。