Contact Form 7を使っていて、チェックボックスのチェックの有無でメールに吐き出す内容を変える必要があるという要件がありました。
というわけで、吐き出す内容を変えるものを適当なタグをつけてメールテンプレートに入れます。僕の場合は[_proxy]というタグをつけて、メールテンプレートに入れておきました。
で、当然ですがこの[_proxy]というタグに対して内容をセットしなければなりません。Contact Form 7のフィルターフックを利用します。functions.phpにこんな内容を書きます。
<?php //フィルターフック add_filter('wpcf7_special_mail_tags', 'my_special_mail_tags',10,2); function my_special_mail_tags($output, $name) { //画面に入れた適当な独自のタグ名で引っ掛けて if($name == '_proxy') { //フォームからポストされたデータ一覧を取得 $postData = WPCF7_Submission::get_instance()->get_posted_data(); //チェックボックスやラジオボタンはこうやらないと取れない if($postData['member_type'][0] == 'XXX') { $output = "パターンAです\n"; } else { $output = "パターンBです\n"; } } //この内容が[_proxy]タグの内容となる return $output; }
下記がとても参考になりました。本当にありがとうございました。