解 説
WordPressサイトで特定のボタンを押したとき、フォームページに遷移するとともに、コンタクトフォーム7で作成したセレクトボックスの値をあらかじめ選択済み(プルダウンを選択された状態)にする方法をご紹介します。
1前ページの情報をGET値で渡し、セレクトボックスを選択済み(selected)にするため、functions.phpに以下を記述。
function webzero_form_select_filter($tag) { $formName = 'select_plan'; //プルダウン名 if ( ! is_array( $tag ) ) return $tag; if( isset($_GET[$formName]) ) { $name = $tag['name']; if( $name === $formName ) { if( is_array( $tag['values'] ) ) { $index = $_GET[$formName]; if( $index !== false ) { $tag['options'][$key] = 'default:' . $index; //デフォルト値設定 } } } } return $tag; } add_filter( 'wpcf7_form_tag', 'webzero_form_select_filter', 11, 2);
2遷移元ページのボタンのリンク属性に、GET値(引数)を設定すれば完了です。
<a href=”○○○○/?select_plan=2″>
のようにリンクURLの最後に、/?セレクトボックスの名前=数値
と記述すればGET値を次のページへ渡すことができます。
これで設定完了です。
コンタクトフォーム7で作成されたセレクトボックスは以下の通り、
[select* select_plan
“選んでください”
“ベーシックプラン”
“ハイグレードプラン”
“スペシャルプラン”
“相談してプランを決めたい”]
プルダウンの項目名である”ベーシックプラン”などを、直接GETで送っても実装できますが、
URLに日本語が表示されるのはスマートではないので、プルダウンの順番を数値で送り、
その項目を選択状態(selected)にします。
この場合、1が”選んでください”、2が”ベーシックプラン” ・・・となります。