Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

Contact Form 7 のテンプレートに独自のタグを入れてその内容をセットする方法

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;
}


下記がとても参考になりました。本当にありがとうございました。

15g.jp