お問い合わせに海外からの迷惑メールを対策する

WordPressでContact Form 7を使った際の海外スパム対策です。お問い合わせフォームに本文が全て外国語の場合は送信できないようにします。

目次

function.phpを開く

WordPress>外観>テーマファイナルエディタを開きます。

テーマを確認し、「function.php」 を選択します。

コードを貼り付ける

以下のコードをコピーしてテーマの 「function.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('/[ぁ-ん]/u', $value)) {
    $result['valid'] = false;
    $result['reason'] = array($name => 'エラー / この内容は送信できません。');
}

return $result;
}

送信確認

日本語でテキストエリアを入力した場合と英語のみで送信した場合を確認してください。

英語のみで確認した場合、送信できません。

感想

放っといたら1日に150件とか来て慌てましたら、対策したらピタッと止まりました。

こんなことなら早くやればよかったです…

この記事を書いた人

目次