AI要約
追加の電話フィールド検証を提供しますか?たとえば、電話フィールドにフリーダイヤル番号の入力を防ぎたい場合は、簡単な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で始まる場合、フォームは送信されず、エラーメッセージが表示されます。

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