WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

GET値を contact form 7 に渡してチェックボックス項目を選択状態にする

以前の事例で
GET値をContact Form 7に渡してフォームに埋め込む
GET値を contact form 7 に渡してプルダウン項目を選択状態(selected)にする
を掲載しました。
続きまして、今回はチェックボックスを制御してみます。

Contact Form 7はチェックボックスのデフォルトチェックをこのように表現します。

default:1_2_3

これで、チェックボックスの最初から1つ目、2つ目、3つ目をチェック状態にすることを表します。
これが分かればあとは簡単です。

テーマのfunctions.phpに次のように記述します。

function kaiza_form_check_filter($tag) {
    $formName = 'checkbox_name'; //contact form 7で設定するチェックボックス名
    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'][] = 'default:' . $index;
                }
            }
        }
    }
    return $tag;
}
add_filter( 'wpcf7_form_tag', 'kaiza_form_check_filter', 11, 2);

これで準備完了です。
 
あとは、問い合わせページへのリンクをこのように記述すれば、チェックボックスcheckbox_nameの1番目、3番目、5番目にチェックが入った状態の問い合わせフォームになります。

<a href="/contact/?checkbox_name=1_3_5">担当施設に問い合わせる</a>

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!