【MW WP Form】フォームの目的によって必須項目を変更する

2021-10-24

フォームに必須項目が多いと入力が面倒になります。なるべくカンタンに送信できるフォームを作りたいですよね。
目的によって、必須項目にするかどうかを切り替えるフォームの作り方をまとめました。

このページの手順でできること

  • ・「MW WP Form」で作成したフォームに設定できます。
  • ・フォームのラジオボタン選択肢によって分岐させ、必須項目を切り替えます。

「MW WP Form」で必須項目を分岐で変更するフォームの作り方

SAMPLE

最初の項目で「資料請求」を選んだ場合だけ、「郵送先のご住所」「資料の種類」が必須項目になります。
さらに「資料の種類」で「その他」を選んだ方だけ必須でテキストボックスに入力してもらいます。

こちらは完成見本です。資料請求を選んで「確認する」をタップするとバリテ-ションエラーメッセージが表示されます。(送信はできません)

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

郵送先のご住所

資料の種類

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

ステップ① 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"」(テキストエリア)を必須項目にします。

おわりに

こちらではラジオボタンの選択肢によって表示・非表示を切り替える方法をご紹介しています。ぜひご覧ください!
【MW WP Form】ラジオボタンの選択によって分岐 表示・非表示を変える

プラグイン「MW WP Form」はフィルターフックの解説ページがあり、様々な機能を追加することができます。WordPress歴6年ですが、自分にとってダントツに使いやすいフォームプラグインです。
マニュアル|フィルターフック|MW WP Form