ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

グローバル拒否リストを作成する方法

概要

すべてのフォームに適用されるグローバルなドメインレベルの拒否リストの確立に関心がありますか?このようなリストを作成すると、単一の統合機能を通じて、WPForms全体で以前にフラグが付けられたスパムメールを普遍的にブロックできます。

デフォルトでは、許可リストまたは拒否リストを使用すると、*@bad-domain.com を使用してフォームごとにドメインを簡単にブロックできます。許可リストまたは拒否リストの設定方法の詳細については、こちらの役立つガイドをご覧ください

しかし、このチュートリアルの主な目的は、グローバルリストを確立し、各フォームでの個別の編集の必要性をなくすことです。PHPの機能を利用すれば、このチュートリアルで示すように、このようなリストの構築は簡単かつ迅速なプロセスになります!

スニペットの追加

次に、スニペットをサイトに追加し、ブロックしたいドメイン名でリストをカスタマイズします。このスニペットをサイトにコピー&ペーストするだけです。

スニペットをサイトに追加する方法と場所に関するサポートについては、こちらのチュートリアルをご覧ください

/*
 * Global denylist for domains on all WPForms.
 *
 * @link https://wpforms.com/developers/how-to-create-a-global-denylist/
*/
 
function wpf_dev_blacklist_global_domains( $field_id, $field_submit, $form_data ) {
 
    // Find the domain name, anything after the @ symbol
    $domain          = substr( strrchr( $field_submit, "@" ), 1 );
 
    // Add the domains here, separated by commas
    $blacklist       = array( 'deny.com', 'nope.com' );
 
    // Customize the error message that will be shown 
    if( in_array( $domain, $blacklist ) ) { 
        wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'We apologize, this domain is not accepted.', 'wpforms' );
        return;
    }
}
add_action('wpforms_process_validate_email', 'wpf_dev_blacklist_global_domains', 10, 3 );

このスニペットは、メールフィールドに入力されたドメイン名を確認し、このスニペットで作成したグローバルリストと照合します。ドメイン名は [email protected] の形式でリストできます。ただし、各ドメインは単一引用符で区切り、カンマで区切られます。

ユーザーがそのドメインを入力してフォームを送信しようとすると、エラーが表示されます。

このスニペットを使用して、グローバル拒否リストを簡単に作成できます

これで完了です!すべてのWPFormsのグローバル拒否リストを正常に作成しました。フォームでの不適切な言葉遣いをブロックすることもできますか?不適切な言葉遣いを含むフォーム送信をブロックする方法に関するチュートリアルをご覧ください。

アクション参照: wpforms_process_validate_email