- Web制作
MW WP FORMをカスタマイズ。特定の項目に値があった場合に必須項目を変更する

最近セキュリティの問題でCONTACT FORM 7 よりMW WP FORM を使うことが多くなってきました。
そこでタイトルの通り、ある項目に値があった場合に、別のある項目を必須項目にするというカスタマイズをしていきます。
mwform_validation_mw-wp-form-xxx
任意の入力フィールドへのバリデーションを追加できるフックです。
条件分岐をしてバリデーションルールを設定したいときなどに使うと便利です。
フック名「mwform_validation_mw-wp-form-xxx」の xxx の部分はフックを適用したいフォームの作成画面に表示されているフォーム識別子の key になります。
「mwform_formkey key=”7188″」 の場合は 7188 になります。
参考コードは下記になります。
/**
* my_validation_rule
* @param object $Validation
* @param array $data
* @param MW_WP_Form_Data $Data
* $Validation::set_ruleの引数は name属性値, バリデーション名, オプション
*/
function my_validation_rule( $Validation, $data, $Data ) {
if($data['入力項目1']){
$Validation->set_rule( '入力項目2', 'noEmpty' ,array('message' => '未入力です'));
}
return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-xxxx', 'my_validation_rule', 10, 3 );
必須にする項目が
ラジオボタン、チェックボックスの場合には、「required」
テキストの場合には、「noEmpty」
を指定します。

名古屋の Web 制作会社で 9 年半働いた後フリーランスに。中小企業のWEBサイト制作実績 120 サイト以上。ディレクション、デザイン、コーディング、WordPress 構築まで手掛けます。Web制作に関わる情報やワーケーション日記などを執筆しています。