解 説
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が”ベーシックプラン” ・・・となります。