お問い合わせページ前に選択肢をおく

Pocket

お問い合わせページにリンクする前にラジオボタンで選択肢を用意しておきたい。

要は、ユーザーに「何についてお問い合わせしたいですか?」といった選択肢を提示しつつ、実際のお問い合わせフォームは一つで管理したいという要望です。

お問い合わせフォームへリンクするボタン「無料でお問い合わせ」。
その前に、お問い合わせの内容を選択できるようにします。

お問い合わせフォームページでは、選択された項目がフォームに規定値として入力された状態になります。
今回は、これが目標です。

Functions.php

functions.php に以下のコードを追加します。

/*------------------------------------------------------------------------------
 フォームにURLパラメータを追加
------------------------------------------------------------------------------*/
/**
 * my_mwform_value
 * @param string  $value valueの初期値
 * @param string  $name name属性値
 */
function my_mwform_value( $value, $name ) {
    if ( $name === 'inquiry' && !empty( $_GET['inquiry'] ) ) {
        if ( !is_array( $_GET['inquiry'] ) ) {
            return $_GET['inquiry'];
        }
    }
    if ( $name === 'company_name' && !empty( $_GET['company_name'] ) ) {
        if ( !is_array( $_GET['company_name'] ) ) {
            return $_GET['company_name'];
        }
    }
    return $value;
}
// 企業様へのお問い合わせフォーム(999)
add_filter( 'mwform_value_mw-wp-form-999', 'my_mwform_value', 10, 2 );

GETでパラメータを渡すことができますので、これを使った方が、以前のpost_id を渡す方法よりもカスタマイズ性が高いかも。

なお、配列で値を渡そうとすると、リダイレクトを繰り返すバグがあるので、注意が必要です。複数選択はできないと思った方がいいです。

MW WP Form

上記のFunctions.phpの修正を行ったら、フォーム設定からvalueの値を削除しておきます。もし、value=”” とかあると、そっちを優先してしまいます。

意外とハマりやすいポイントですので、ご注意下さい。