お問い合わせフォームに利用されるプラグイン「MW WP Form」。
特定の文字列が入力されていたら、管理者宛にはメールを届けないカスタマイズです。
コードは以下の通りです。
function zipang_mwform_not_send_admin_mail( $Mail, $values, $Data ) {
if ( isset($values['your-name']) && strpos( $values['your-name'] ,'http') !== false ) {
$Mail->to = '';
add_filter( 'mwform_is_mail_sended', function(){return true;});
}
return $Mail;
}
add_filter('mwform_admin_mail_mw-wp-form-xxxx', 'zipang_mwform_not_send_admin_mail', 10, 3);
「xxxx」の部分は対象フォームの個別番号になります。
「your-name」の入力欄に「http」の文字が入力されていたら作動する形になります。
スパムメールには必ずURLが含まれています。
「your-name」の部分を本文で使用しているnameに変更すれば、本文内にhttpがあった場合に発動します。
ただこれをしてしまうと本当のお問い合わせメール内にURLが記載されていると届かない事になりますので、使い方には注意が必要です。
ちなみに送信者に自動返信を設定している場合は、そちらには届きます。
この対応でスパム送信者は送信出来たと認識するので、無駄に試行されなくて済むはずです。