MW WP Form 動的にバリデーションルールを追加する方法

WordPressのフォーム作成用プラグイン “MW WP Form” を使って選択状況に応じて動的にバリデーションルールを追加することが出来ます。

MW WP Form には “mwform_validation_mw-wp-form-xxx” というフィルターフックが用意されていますので、こちらを利用してバリデーションルールを追加したい条件と場所に設定します。

サンプル

下記サンプルはよくある問い合わせフォームで “法人” Or “個人” の選択肢で法人を選択した場合のみ法人名など法人用の入力項目に必須項目などのバリデーションルールを追加しています。

/**
 * MW WP Form バリデーションルールのカスタマイズ
 * 選択状況に応じて動的に変更します。
 */
function ag_validation_rule( $Validation, $data)
{
    if($data['組織種別']=='法人'){
        //メッセージ用配列
        $msg['noEmpty']  = '未入力です。';
        $msg['required'] = '必須項目です。';
        $msg['between']  = '文字数が正しくありません。';
        
        //バリデーションルール適用
        $Validation->set_rule( '法人名', 'noEmpty', array('message' => $msg['noEmpty']) );
        $Validation->set_rule( '社員数', 'noEmpty', array('message' => $msg['noEmpty']) );
        $Validation->set_rule( '上場・非上場', 'required', array('message' => $msg['required']) );
        $Validation->set_rule( '法人名', 'between', array(
            'min'     => 2,
            'max'     => 30,
            'message' => $msg['between']
            )
        );        
    }
    return $Validation;
}

// [XXXX] に "777" など MW WP Form の投稿IDを指定します
add_filter( 'mwform_validation_mw-wp-form-XXXX', 'ag_validation_rule', 10, 3);

動作確認環境

エックスサーバー(x10)
PHP 7.2.17
MySQL 5.7
WordPress 5.3.2
MW WP Form 4.2.0

コメント

タイトルとURLをコピーしました