Contact Form 7 | フリガナのバリデーション(全角カタカナ又は平仮名)を追加する

Contact Form 7 を利用したフォームで迷惑メールが届くようになったので、reCAPTCHAの設定と合わせて”フリガナ”の項目を追加して全角カタカナ又は平仮名の入力をチェックするバリデーションを追加しました。

Contact Form 7 “フリガナ”のバリデーションを追加

全角カタカナ又は平仮名のバリデーション

以下のコードを functions.php 等へ追加することで、”your-kana”という名前で追加したフリガナの入力項目に対して全角カタカナ又は平仮名のバリデーションを追加することが出来ます。

/**
 * Contact Form 7 "フリガナ"のバリデーションを追加する
 */
function custom_wpcf7_validate_kana($result,$tag)
{
    $tag   = new WPCF7_Shortcode($tag);
    $name  = $tag->name;
    $value = isset($_POST[$name]) ? trim(wp_unslash(strtr((string) $_POST[$name], "\n", " "))) : "";

    //全角カタカナ又は平仮名の入力チェック
    if ($name === "your-kana") {
        if(!preg_match("/^[ア-ヶーぁ-ん]+$/u", $value)) {
            $result->invalidate( $tag,"全角カタカナ又は平仮名で入力してください。");
        }
    }

    // //全角カタカナのみ
    // if ($name === "your-kana") {
    //     if(!preg_match("/^[ア-ヶー]+$/u", $value)) {
    //         $result->invalidate( $tag,"全角カタカナで入力してください。");
    //     }
    // }

    // //平仮名のみ
    // if ($name === "your-kana") {
    //     if(!preg_match("/^[ぁ-ん]+$/u", $value)) {
    //         $result->invalidate( $tag,"平仮名で入力してください。");
    //     }
    // }


    return $result;
}
add_filter('wpcf7_validate_text', 'custom_wpcf7_validate_kana', 11, 2);
add_filter('wpcf7_validate_text*', 'custom_wpcf7_validate_kana', 11, 2);

全角カタカナのみ

//全角カタカナのみ
if ($name === "your-kana") {
    if(!preg_match("/^[ア-ヶー]+$/u", $value)) {
        $result->invalidate( $tag,"全角カタカナで入力してください。");
    }
}

平仮名のみ

//平仮名のみ
if ($name === "your-kana") {
    if(!preg_match("/^[ぁ-ん]+$/u", $value)) {
        $result->invalidate( $tag,"平仮名で入力してください。");
    }
}

動作環境情報

"エックスサーバー" スタンダード(旧X10)
"PHP" 7.4.13
"MySQL" 5.7
"WordPress" 5.8.2
"Contact Form 7" 5.5.3

コメント

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