KH-WEBLOG TOP > WEBメモ > WordPress > Contact Form 7でスパム対策として入力内容が日本語の場合のみ送信可能にする方法:WordPress

Contact Form 7でスパム対策として入力内容が日本語の場合のみ送信可能にする方法:WordPress

最終更新日:

WordPressの「Contact Form 7」で
スパム対策として入力内容が日本語の場合のみ送信可能にする方法をご紹介します。

スパム対策は色々方法があるかと思いますが、
ContactForm7を使用している場合で、日本人をターゲットにした問合せフォームの場合
一番簡易的にスパム対策をできる方法は下記かと思います。

functions.php

functions.phpに

//textareaに日本語エラーチェック(contact form7)
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
 
function wpcf7_validation_textarea_hiragana($result, $tag)
{
    $name = $tag['name'];
    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
 
    if ($value !== '' && !preg_match('/^.*(?=[^\x01-\x7E\x{FF61}-\x{FF9F} ]+)(?=[^А-я]+).*$/mu', $value)) {
        $result['valid'] = false;
        $result['reason'] = array($name => '日本語で入力してください。');
    }
 
    return $result;
}

上記のソースを追加するだけでOK

これでテキストエリアが英字のみ等の場合は
「日本語で入力してください。」というエラーメッセージが出ますので
海外スパムは対策できるかと思います。

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP SEO WordPress アイキャッチ画像 アクセス解析 カテゴリー カラーミーショップ カート コメント ショートコード ソースコード タグ テンプレートタグ ドロップダウンメニュー パーマリンク ビジュアルエディタ フォーム フルスクリーン プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 角丸 関連記事