ご注意!

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

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

閉じる

追加の電話フィールド検証を提供する方法

追加の電話フィールド検証を提供しますか?たとえば、電話フィールドにフリーダイヤル番号の入力を防ぎたい場合は、簡単なPHPスニペットで簡単に実現できます。このチュートリアルでは、フォームへのフリーダイヤル番号の入力を防ぐ方法をステップバイステップで説明します。

フォームの作成

まず、フォームを作成し、電話フィールドと、フォームに必要なその他のフィールドを追加する必要があります。

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

追加の電話フィールド検証を提供するには、まずフォームを作成する必要があります。

電話フィールドのフォーマット設定

このドキュメントでは、8または+8で始まる電話番号をすべて防ぎます。使用している電話フォームフィールドのフォーマットによって、以下で使用する必要のあるコードスニペットが決まります。

電話フィールドで使用したいフォーマットを選択してください

追加の電話フィールド検証

次に、必要なPHPスニペットを追加します。フォームを作成したときに電話フィールドに設定されたフォーマットによって、2つの異なるスニペットがあります。

サイトへのスニペットの追加についてサポートが必要な場合は、こちらのチュートリアルをご覧ください

米国の電話フォーマット

/**
 * Custom US format phone field Validation on submit (reject defined prefixes).
 *
 * @link  https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/
 */

function wpf_dev_process_validate_phone($field_id, $field_submit, $form_data)
{
        //  Only check for US phone field format
	if ( 'us' === $form_data[ 'fields' ][$field_id][ 'format' ]) { 

		$stripped_phone = str_replace(array( '(', ')'), '', (string) $field_submit);

		$prefixes = [ '8', '+8' ];

		$regexp = implode( '|', $prefixes);

		if (preg_match( '/^[' . $regexp . ']/', $stripped_phone)) {
			wpforms()->process->errors[$form_data[ 'id' ]][$field_id] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes ) . '"', 'plugin-domain' );
		}
	}
}

add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3);

スマートおよび国際電話フォーマット

/**
 * Custom Smartphone and International field Validation on submit (reject defined prefixes).
 *
 * @link  https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/
 */

function wpf_dev_process_validate_phone( $field_id, $field_submit, $form_data ) {

   $prefixes = [ '8', '+8' ];

   $regexp = implode( '|', $prefixes );

   if ( preg_match( '/^[' . $regexp . ']/', (string) $field_submit ) ) {
      wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes) . '"', 'plugin-domain' );
   }
}

add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3 );

これらのスニペットは両方とも、フォームが送信されたときに電話フィールドの値を確認し、それが番号8または+8で始まる場合、フォームは送信されず、エラーメッセージが表示されます。

追加の電話フィールド検証を提供することで、フォームへのフリーダイヤル番号の入力を簡単に防ぐことができます。

これで完了です!電話フォームフィールドに追加の検証を正常に追加しました。特定のメールアドレスの入力を防ぐこともできますか?メールドメインを制限する方法に関するチュートリアルをご覧ください。

参照フィルター

wpforms_process_validate_phone