WordPress

【Contact Form 7】テキストエリアにひらがな・カタカナのバリデーションを追加する方法【スパム対策】

ken-admin-suto

今回ご紹介するのは、テキストエリアにひらがな(平仮名)とカタカナのバリデーションを追加する方法です。

あわせて読みたい
【Contact Form 7】ひらがな・カタカナのバリデーションを追加する方法【スパム対策】
【Contact Form 7】ひらがな・カタカナのバリデーションを追加する方法【スパム対策】

上記の記事は「ふりがな(フリガナ)」部分のバリデーションを載せているので、併せて読んでいただければ嬉しいです。

さて、今回の記事は、

  • 迷惑メールを防止したい
  • テキストエリアに「ひらがな」か「カタカナ」を含まないと送れないようにしたい

などを考えている方におすすめです。

是非、参考にしてみてください。

テキストエリアに「ひらがな」を含まないと送信できないようにする方法

functions.phpに追加するコード

funtions.phpに下記のコードを追加してください。

1<?php
2function wpcf7_validation_textarea_hiragana($result, $tag)
3{
4    $name = $tag['name'];
5    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
6 
7    if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
8        $result['valid'] = false;
9        $result['reason'] = array($name => 'テキストエリアに「ひらがな」を含めてください。');
10    }
11 
12    return $result;
13}
14add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
15add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
16?>

「コンタクトフォームの編集」のコード

1<label> テキストエリア
2    [textarea your-message] </label>

「Contact Form 7」の「コンタクトフォームの編集」部分に記載するコードは、そのままで大丈夫です!

どのように表示される?

実機の画面で見てみると、テキストエリアに「ひらがな」を含めて入力しないと、上記(例)のように表示されます。

テキストエリアに「カタカナ」を含まないと送信できないようにする方法

functions.phpに追加するコード

funtions.phpに下記のコードを追加してください。

1<?php
2function wpcf7_validation_textarea_hiragana($result, $tag)
3{
4    $name = $tag['name'];
5    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
6 
7    if ($value !== '' && !preg_match('/[ア-ヶ]/u', $value)) {
8        $result['valid'] = false;
9        $result['reason'] = array($name => 'テキストエリアに「カタカナ」を含めてください。');
10    }
11 
12    return $result;
13}
14add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
15add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
16?>

上記の内容は、最初にご紹介した「ひらがな」の「カタカナver」になります。

テキストエリアに「ひらがな」または「カタカナ」を含まないと送信できないようにする方法

functions.phpに追加するコード

funtions.phpに下記のコードを追加してください。

1<?php
2function wpcf7_validation_textarea_hiragana($result, $tag)
3{
4    $name = $tag['name'];
5    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
6 
7    if ($value !== '' && !preg_match('/[ア-ヶーぁ-ん]/u', $value)) {
8        $result['valid'] = false;
9        $result['reason'] = array($name => 'テキストエリアに「ひらがな」または「カタカナ」を含めてください。');
10    }
11 
12    return $result;
13}
14add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
15add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
16?>

上記の内容は、「ひらがな」又は「カタカナ」verになります。

まとめ:迷惑メールを事前に対策しておこう

実際、迷惑メールは非常に厄介で、初見はやや怖い思いをするので勘弁して欲しいところ。

今回の記事のコードを記載することで、英文のみの迷惑メールを防ぐことができたので、迷惑メールに困っている方は、是非参考にしてみてください。

以上になります。

SNSも更新中!
気軽にフォローして下さい♪
ABOUT ME
けん
けん
ブロガー / WEB制作フリーランス
経歴:新卒でIT企業に就職 → 大学・企業・プラグラミングスクールで勉強した知識を活かしてフリーランスに → 最高月収50万円程
得意分野:WordPress/HTML/CSS/JS 等

Web制作を中心にフリーランスとして活動中。
Web制作に関する記事を投稿致します。
記事URLをコピーしました