MW WP form に スパムメールがたくさん来るので追記したコード

記事
IT・テクノロジー
MW WP form に スパムメールがたくさん来るので追記したコードです。
「禁止用語1」、「禁止用語2」を禁止文字に設定しました。

<追記>
functions.php に追記するだけです。
ショートコードの mw-wp-form-〇〇 の部分が 今は、「47」です。
お気をつけください。

PHP themes/functions.php 
/**
 * 禁止文字バリデーションルールを設定
 */
function coop_applicate_validation_rule($Validation, $data) {
    $Validation->set_rule('textarea', 'prohibited_words'); // チェック対象フィールド名を変更
    return $Validation;
}
// ここでフォームIDを変更してください(例: mw-wp-form-47)
add_filter('mwform_validation_mw-wp-form-47', 'coop_applicate_validation_rule', 10, 2);

/**
 * 禁止文字バリデーションルールを登録
 */
function my_validation_rule( $validation_rules, $key ) {
    // 禁止文字チェックルールを追加
    $validation_rules['prohibited_words'] = new MW_WP_Form_Validation_Rule_Prohibited_Words($key);
    return $validation_rules;
}
add_filter('mwform_validation_rules', 'my_validation_rule', 10, 2);

/**
 * 禁止文字チェックのバリデーションルールクラス
 */
class MW_WP_Form_Validation_Rule_Prohibited_Words extends MW_WP_Form_Abstract_Validation_Rule
{
    protected $name = 'prohibited_words';
    public function rule( $key, array $options = []) {
        $value = $this->Data->get( $key );
        if ( !MWF_Functions::is_empty( $value ) ) {
            // 禁止文字のリスト
            $prohibited_words = ['禁止用語1', '禁止用語2']; // ここに禁止したい文字列を追加

            // 禁止文字が含まれているかをチェック
            foreach ($prohibited_words as $word) {
                if (strpos($value, $word) !== false) {
     $message_str = "お問い合わせが混み合っているため送信できません。しばらくたってからお願いします。";
                    return $message_str; // エラーメッセージを返す
                }
            }
        }
        return null; // 問題がなければ null を返す
    }

    public function admin( $key, $value ) {}
}

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す