【MW WP Form】必須項目をラジオボタン選択肢によって変えたい

ワードプレス

2021-10-24

MW WP Formの必須項目を分岐で変更!

お問い合わせフォームなどで、選択肢によって分岐させ、フォームの項目を変えるのは難しい。例えば、資料請求を選んだら住所入力欄が出てくるとか。
必須が多いとフォーム入力が面倒になるので、なるべくシンプルに作りたいんですよね。でもお問い合わせフォームと別に資料請求フォームを作成するのも手間です。
では分岐で必須項目だけでも変えられる? そう思って調べました。

MW WP Formの編集

まずはプラグイン「MW WP Form」をインストールしてフォームを作ります。

お問い合わせの種類
資料請求をお選びの方は必ずお答えください

郵送先のご住所

資料の種類

その他をお選びの方は詳しくご記入ください

最初の項目で「資料請求」を選んだ場合だけ、「郵送先のご住所」「資料の種類」が必須項目になります。

さらに「資料の種類」で「その他」を選んだ方だけ必須でテキストボックスに入力してもらいます。
(こちらのフォームの見本からは送信されません。)

こちらはフォームのコード例です。

<table>
<tr>
<th>お問い合わせの種類</th>
<td>[mwform_radio name="type" children="お問い合わせ,ご予約,資料請求,その他" vertically="true"]</td>
</tr>
<tr>
<th>資料請求をお選びの方は必ずお答えください</th>
<td>
<p>郵送先のご住所</p>[mwform_text name="your-address" size="60"]
<p>資料の種類</p>[mwform_radio name="document" children="商品1,商品2,商品3,その他" vertically="true"]
<p>その他をお選びの方は詳しくご記入ください</p>[mwform_textarea name="other" cols="50" rows="5"]
</td>
</tr>
</table>
<div class="contact_btn">
[mwform_submitButton name="submit" confirm_value="確認する" submit_value="送信する"][mwform_bback class="modoru" value="back"]戻る[/mwform_bback]
</div>

 

MW WP Formの編集画面では上記のバリテーションルールは設定しません。

 

function.phpに追加

続いてfunction.phpで下記バリテーションルールを設定します。

//MW WP Form バリテーション
function my_validation_rule( $Validation, $data ) {
if ( $data['type'] === '資料請求' ) {
$Validation->set_rule( 'your-address', 'noEmpty', array(
'message' => '※資料請求の方は必ずご記入ください。'
) );
$Validation->set_rule( 'document', 'required', array(
'message' => '※資料請求の方は必ず選択してください。'
) );
}
if ( $data['document'] === 'その他' ) {
$Validation->set_rule( 'other', 'noFalse', array(
'message' => '※その他を選択した方は必ずご入力ください。'
) );
}
return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-★★★', 'my_validation_rule', 10, 3 );

一番下の行「mw-wp-form-★★★」、★★★にはフォームの識別子の数字が入ります。
ラジオボタン「name=”type”」で選択したものが「資料請求」だったら「name=”your-address”」(テキスト)、「name=”document”」(ラジオボタン)を必須項目にします。

また、「name=”document”」(ラジオボタン)で「その他」を選択した場合、「name=”other”」(テキストエリア)を必須項目にします。

また今回もこちらのページにお世話になりました。
本当に助かりました!ありがとうございます!

-ワードプレス

関連記事

固定ページでphpを使いたい

例えばトップページを固定ページで作成したとき、お知らせの新着一覧を固定ページ上で好きな位置に配置したいな、と考えたことはありませんか?

よく使うWordPressテンプレートタグ

URLを出力するWordPressのテンプレートタグ phpファイルにテンプレートタグを使用することで、自動でURLを取得して表示してくれます。ドメインが変わってもコードの修正なし! ホームページのU …

バージョンアップしたContact Form 7 に入力確認画面をつけたい!

入力確認画面が作れるプラグイン「Contact Form 7 Multi-Step Forms」 Contact Form 7をアップデートしたらフォームが動かなくなってしまった! 調べてみると確認画 …

カスタム投稿プラグイン「Custom Post Type UI」のお引っ越し

カスタム投稿の移行 「Custom Post Type UI」は、簡単にカスタム分類を設定して独自の投稿タイプを作れるプラグインです。function.phpに記述せずにカスタム投稿を作成できるのは初 …

WordPress よく使うおすすめプラグイン

プラグインが増えれば内容によってスクリプトが増え、ページの読み込みが遅くなるので、使い過ぎないようにします。私が今まで制作していて本当に助かっているプラグインはこちらです!