質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1757閲覧

ContactForm7 選択肢ごとに返信メールに記載する文章を変えたい

Acccoron

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/04/21 13:40

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

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問