Contact Form7の返信メールを条件分岐

 

タケノコの季節です。
我が家のタケノコ。欲しい方はご連絡くださいませ。
(最近デジカメの調子が悪く、ピントが合わないんですよねぇ〜。
日本語環境でも安心して使用できるお問い合わせフォームのプラグインといえば、
Contact Form 7
ですが、これをちょっとカスタマイズ。
チェックボックスの選択内容によって送信メール内容を変えてみました。
「支払方法」といったチェックボックスを作って、
銀行振込を選択した場合のみ口座番号の入ったメールを送るとか、
「ご利用回数」といったチェックボックスを作って、
初めての方には、詳しい説明を送るとか、
少しスマートな対応が可能になります。
まずは、Contact Form 7の管理画面で必要なチェックボックスを作成。
このとき、排他的で作成しないとあとの取扱が面倒ですね。
今回は、checkbok で電話かメールを
 
[html]
[checkbox* checkbox-123 exclusive "電話" "メール"]
[/html]
送信されるメール欄には、
●checkbox-123の選択内容の表示欄
[html]
[checkbox-123]
[/html]
●checkbox-123の選択内容によって変わる内容を表示する欄
[html][_checkbox-123][/html]
ご利用中のthemeのfunction.phpに以下の内容を追加
[php]
//cf7でアウトプット分岐
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-123' == $name ){
  $a = '電話';
  $b = 'メール';
  $name = 'checkbox-123';
   if ($_POST[$name] == $a){
     $output .= '電話の時の案内文';
   }elseif($_POST[$name] == $b){
     $output .= 'こっちは電話の時の'."\n";
     $output .= '案内文2行目';
   }
    return $output;
 }
}
[/php]
これで、[checkbox-123]の選択項目が “電話” なら

[_checkbox-123]に$aの内容が表示されます。

回りくどいけど、汎用性はあります。

 

ちなみに、1行程度の文章なら、パイプ処理を使う事も可能です。

Contact Form 7オフィシャルサイト:パイプを使って送信先を選択可能に

例:[checkbox* checkbox-123 exclusive “電話|電話の方への案内” “メール|メールの方への案内”]