特定の電話番号の送信を拒否する方法

はじめに

特定の電話番号からのフォーム送信を拒否したいですか?小さなPHPスニペットを作成することで、電話番号が拒否リストにあった場合にフォームの送信をブロックすることが簡単にできます。このチュートリアルでは、これを実現するための手順を説明します。

フォームの作成

まず、新しいフォームを作成し、このフォームにフィールドを追加する必要があります。

このチュートリアルでは、電話番号フィールドにスマート・フォーマットを使用します。

フォームの作成にサポートが必要な場合は、こちらのドキュメントをご覧ください

フォームを作成し、電話番号フィールドとその他のフィールドを追加する。

特定の電話番号の拒否

特定の電話番号を拒否するには、このスニペットをサイトに追加する必要があります。

あなたのサイトにスニペットを追加する方法についてヘルプが必要な場合は、こちらのチュートリアルをご覧ください

/*
 * Deny specific phone numbers from your WPForms.
 *
 * @link https://wpforms.com/developers/how-to-deny-specific-phone-numbers-from-submitting/
*/
  
function wpf_dev_blacklist_phone( $field_id, $field_submit, $form_data ) {
 
    // List each number in this array and separate with a comma using one of the formats detailed below
 
    // Smart         Phone Format - +12025550164
    // US            Phone Format - (202) 555-0164
    // International Phone Format - 2025550164
    
    // Optional, you can limit to specific forms. Below, we restrict output to form ID 5
    // Remove this section if you wish to run on all forms
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return;
    }
 
    // Add your phone numbers separated by a comma
    $phone_blacklist = array( 
            '+12025550164',
             
    );
  
    if( in_array( $field_submit, $phone_blacklist ) ) { 
        wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'Phone not accepted!', 'wpforms' );
        return;
    }
}
 
add_action('wpforms_process_validate_phone', 'wpf_dev_blacklist_phone', 10, 3 );

このスニペットはフォームID5でのみ処理されます。このIDを自分のフォームIDに合わせて更新する必要があります。IDを見つけるのに助けが必要な場合は、こちらのガイドをご覧ください

phone_blacklistはあなたが作成する番号のリストで、フォームに入力された電話番号のひとつがこのリストにある番号と一致した場合、フォームの送信を停止します。

上記のスニペットは、電話番号フィールドにスマートフォーマットを使用したものです。USフォーマットまたはインターナショナルフォーマットを使用する場合の配列のフォーマット方法については、上記のスニペットのコメントを参照してください。

このスニペットを使うと、特定の電話番号からのフォーム送信を拒否することができます。

必要なのはそれだけです!電話番号をメール通知のリンクにしたいですか?チュートリアル「メール通知で電話番号をリンクにする方法」をご覧ください。

アクション・リファレンス:wpforms_process_validate_phone