WordPressカスタマイズ事例

GET値をContact Form 7に渡してフォームに埋め込む

採用やセミナー参加などで参加フォームに誘導する場合、前のページの値を引き継いできてフォームに突っ込みたいですよね。
ここでは、GETで取得した値をContact Form 7に渡してフォームに埋め込む方法です。

例として、投稿IDをGETで取得してその投稿IDが属するタームをフォームに埋め込んでみます。

まず、テーマのfunctions.php に下記を追記します。

function kaiza_form_tag_filter($tag){
if ( ! is_array( $tag ) )
return $tag;

if(isset($_GET['jc'])){ //投稿ID
$postid = htmlspecialchars($_GET['jc']);

$name = $tag['name'];

$terms = wp_get_object_terms($postid,'cnt_recruit_cat'); //cnt_recruit_catはタクソノミー
$cnt_recruit_cat = $terms[0]->name;

if($name == 'cnt_recruit_cat'){
$tag['values'] = (array) $cnt_recruit_cat;
}

}
return $tag;
}
add_filter('wpcf7_form_tag', 'kaiza_form_tag_filter', 11);

これで、Contact Form 7のcnt_recruit_catというフォーム名にターム情報を渡すところまでできました。

では、Contact Form 7のフォームに埋め込んでみましょう。
Contact Form 7のフォーム編集画面で以下のように記述します。

[text* cnt_recruit_cat default:cnt_recruit_cat readonly]

これで、タームの情報がフォームに埋め込まれた状態になります。


その他のWordPressカスタマイズ事例