contactform7で日本語以外の問い合わせをブロックする方法

web・wordpress
この記事は約2分で読めます。

以前、contactform7でスパムメールを減らす対策を投稿しましたが、そもそもメッセージの中に日本語が入っていなかったらスパム認定すればいいじゃないか…ということに今頃気づきました。。。

今回、紹介する対策はfunctions.phpを編集する方法になりますので、コードを編集するのが嫌な方は上記の方法で簡単に対策できます。
ちょっとでも対策しておけば、すぐに効果が出ますので、おすすめです。
ちなみにプラグイン「contactform7」を使っている場合のみの対策です。

//-- Contact Form 7 英語のみの投稿は送信できない
 
add_filter('wpcf7_validate_textarea', 'ktzw3', 10, 2);
add_filter('wpcf7_validate_textarea*', 'ktzw3', 10, 2);
 
function ktzw3($result, $tag)
{
    $name = $tag['name'];
    $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
 
    if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
        $result['valid'] = false;
        $result['reason'] = array($name => 'ここにエラーメッセージ');
    }
 
    return $result;
}

上記のコードは「https://qiita.com/fallout/items/ba6eed8cce2c60f1cf0b」「https://tomozo-music.net/html/2019/02/4736/」のサイトで紹介されています。

web・wordpress
スポンサーリンク
free-mom

コメント

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