BLOG

ブログ

  • 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」

を指定します。