ご注意!

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

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

閉じる

フォームの完了をIPアドレスでブロックする方法

はじめに

フォームの送信をブロックしたいIPアドレスがありますか? WPFormsの許可/拒否リストを使用すると、簡単にユーザーをブロックできますが、IPアドレスのみに基づいてブロックできることも知っていましたか? このチュートリアルでは、この機能を実現するために小さなPHPスニペットを使用する方法を説明します。

許可/拒否リストの作成に関する詳細については、こちらのチュートリアルをご覧ください

フォームの作成

まず、フォームを作成し、フィールドを追加します。フォームの作成にヘルプが必要な場合は、こちらのドキュメントをご覧ください

フォームを作成し、フィールドを追加することから始めます

スニペットの追加

フォームが作成され公開されたら、このスニペットをサイトに追加できます。

スニペットをサイトに追加する方法や場所がわからない場合は、こちらのチュートリアルをご覧ください

/**
 * Block form submissions based on IP address
 *
 * @link   https://wpforms.com/developers/how-to-block-ip-addresses-from-completing-your-form/
 */
function wpf_ip_block( $fields, $entry, $form_data ) {
      
    // Get the current users IP address
    $ip_address = wpforms_get_ip();

    // List out the IP addresses separated by a comma
    $blocked_ips = array(
        '129.222.6.90',
        '127.0.0.1',
    );
      
    // Check if the current user IP address is a blocked IP
    if ( in_array( $ip_address, $blocked_ips ) ) {
		
        // Block form submission and print error
        wpforms()->process->errors[ $form_data[ 'id' ] ] [ 'footer' ] = esc_html__( 'Your IP address has been blocked. Please contact the site administrator for further assistance.', 'text-domain' );
    }
}
add_action( 'wpforms_process', 'wpf_ip_block', 10, 3 );

このスニペットは、まずユーザーのIPアドレスを見つけ、それがブロックされたIPアドレスのリストと一致する場合、フォームは送信されず、エラーが表示されます。

このスニペットでIPアドレスをブロックできるようになりました

これで、WPFormsのいずれかのフォームへのIPアドレスの送信をブロックするために必要なすべてが揃いました。名前によるフォーム送信もブロックしたいですか? フォーム送信をブロックする方法に関するチュートリアルをご覧ください。

アクションリファレンス: wpforms_process