ContactForm7を使って見積もりフォームを作成していますが
商品をチェックボックスで選択させて
その選択肢によって返信メールに記載される文章を変更したいです。
例えば・・・
contactForm7 設定側
lang
1 [checkbox_custom* checkbox_custom-25 exclusive "3000|りんご" "2500|いちご" "4000|すいか" "10000|メロン" "8000|マンゴー" "1500|トマト"]
value値を表側と裏側とで分けたいのでcheckbox_customを使用しました。
フォームの画面では「リンゴ」「いちご」といった商品名を表示させ、裏でCalculatedで合計金額を算出し、
その金額も返信メールに記載しています。
返信メールの条件分岐でググって出てきたコードを少し変えて
functions.phpに以下を追加してみました。
lang
1add_filter( 'wpcf7_special_mail_tags', 'my_special_mail_tags', 10, 2 ); 2function my_special_mail_tags( $output, $name ) { 3 $name = preg_replace( '/^wpcf7./', '_', $name ); 4 if ( '_checkbox_custom-25' == $name ) { 5 $a = 'りんご'; 6 $b = 'いちご'; 7 $c = 'すいか'; 8 $d = 'メロン'; 9 $e = 'マンゴー'; 10 $f = 'トマト'; 11 $name = 'checkbox_custom-25'; 12 13 if ( $_POST[ $name ] == $a ) { 14 $output .= 'リンゴの文章が入ります。'; 15 } elseif ( $_POST[ $name ] == $b ) { 16 $output .= 'いちごの文章が入ります。'."\n"; 17 $output .= 'いちご案内文2行目'; 18 } elseif ( $_POST[ $name ] == $c ) { 19 $output .= 'すいか'."\n"; 20 $output = 'すいか案内文2行目'; 21 } elseif ( $_POST[ $name ] == $d ) { 22 $output .= 'メロン'."\n"; 23 $output .= 'メロン案内文2行目'; 24 } elseif ( $_POST[ $name ] == $e ) { 25 $output .= 'マンゴー'."\n"; 26 $output .= 'マンゴー案内文2行目'; 27 } elseif ( $_POST[ $name ] == $f ) { 28 $output .= 'トマト'."\n"; 29 $output .= 'トマト案内文2行目'; 30 } 31 return $output; 32 } 33} 34
ここで独自のタグ「_checkbox_custom-25」を設定して、それを返信メール側に追加したのですが・・
そのままの文字列「_checkbox_custom-25」が表示されてしまいます。
lang
1if ( '_checkbox_custom-25' == $name ) { 2 $a = '3000|りんご'; 3 $b = '2500|いちご'; 4 $c = '4000|すいか'; 5 $d = '10000|メロン'; 6 $e = '8000|マンゴー'; 7 $f = '1500|トマト'; 8 $name = 'checkbox_custom-25';
こんな風に変更してみてもダメでした・・・。
PHPはググってコピペ、ちょっとカスタマイズレベルの知識しかありません。。
お知恵をかしていただけますでしょうか・・・。
どうぞよろしくお願いいたします。
あなたの回答
tips
プレビュー