前提・実現したいこと
WordPress 4.9.8にてContact Form 7(バージョン 5.0.4)を利用したフォームを作成しております。
そこにカスタムフィールドの値を渡す方法として、以下サイトなどを参考に、functions.phpに記載をおこないました。
http://bit.ly/2PLR5Ay
こちらの内容の通り、textフィールドについては問題なく値の引き渡しができたのですが、
radio,selectフィールドの値の引き渡しができず困っています。
$_GETを利用すれば可能かと思われますが、radio,selectフィールドが複数あり、URL上での記載は
あまりしたくないのが現状です。
$_POSTタグを利用し、上記参考サイトのように、複数のフィールドを設定する方法、もしくは参考サイトをご教示いただけないでしょうか。
カスタムフィールド 例)
性別(sex) ・・・ 男/女
区分(kubun) ・・・ 新卒/中途
勤務地(kinmuchi) ・・・ 都道府県リスト
お住まい(osumau) ・・・ 都道府県リスト
など
以上、よろしくお願いいたします。
実際のソース
Contact Form 7 上
・ラジオボタン
php
1 [radio sex use_label_element "男" "女"]
・セレクトボタン
php
1[select* kinmuchi class:form-control "北海道" "青森県" 〜と都道府県リストを記載 ]
個別記事テンプレート(Contact Form 7 へhiddenでデータ渡す
php
1$user = wp_get_current_user(); 2$sex = $user -> sex; 3$kinmuchi = $user -> kinmuchi; 4<form action="<?php echo esc_url( home_url( '/entry/' ) ); ?>" method="post"> 5<input type="hidden" name="sex" value="<?php echo $sex; ?>"> 6<input type="hidden" name="kinmuchi" value="<?php echo $kinmuchi; ?>"> 7<div class="entry-button"><input type="submit" value="エントリーする"></div> 8</form>
functions.php
php
1function my_form_tag_filter($tag){ 2if ( ! is_array( $tag ) ) 3return $tag; 4 5if(isset($_POST['sex'])){ 6$name = $tag['name']; 7if($name == 'sex') 8$tag['values'] = (array) $_POST['sex']; 9} 10 11if(isset($_POST['kinmuchi'])){ 12$name = $tag['name']; 13if($name == 'kinmuchi') 14$tag['values'] = (array) $_POST['kinmuchi']; 15} 16 17return $tag; 18} 19add_filter('wpcf7_form_tag', 'my_form_tag_filter');
補足情報(FW/ツールのバージョンなど)
WordPress 4.9.8
Contact Form 7(バージョン 5.0.4)
