ホームページの作成や運用ノウハウについて、プロのクリエイターが情報を無料公開!

ホームページTIPS
facebook twitter mail

このサイトはコーディング初心者〜中級者向けの情報サイトです。掲載コードの転用制限はありませんが、
動作保証は行なっておりません。ご意見については、フォームからお知らせください。

wordpressに関するTips

更新日:2019.12.22

Contact Form 7のセレクトボックスに前ページの値を渡してセットする方法

解 説

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

コンタクトフォーム7で作成されたセレクトボックスは以下の通り、

 

[select* select_plan

“選んでください”

“ベーシックプラン”

“ハイグレードプラン”

“スペシャルプラン”

“相談してプランを決めたい”]

 

プルダウンの項目名である”ベーシックプラン”などを、直接GETで送っても実装できますが、

URLに日本語が表示されるのはスマートではないので、プルダウンの順番を数値で送り、

その項目を選択状態(selected)にします。

この場合、1が”選んでください”、2が”ベーシックプラン” ・・・となります。

2遷移元ページのボタンのリンク属性に、GET値(引数)を設定すれば完了です。
 
ベーシックプランに
お申し込みする
ハイグレードプランに
お申し込みする
スペシャルプランに
お申し込みする

<a href=”○○○○/?select_plan=2″>

のようにリンクURLの最後に、/?セレクトボックスの名前=数値

と記述すればGET値を次のページへ渡すことができます。

これで設定完了です。

トップへ