¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Cómo proporcionar validación adicional del campo de teléfono

¿Le gustaría proporcionar validación adicional del campo de teléfono? Por ejemplo, si desea evitar que los usuarios introduzcan números de tarificación adicional en su campo Teléfono, puede lograrlo fácilmente con un pequeño fragmento de PHP. En este tutorial, le guiaremos a través de los pasos sobre cómo evitar que se introduzcan números de tarificación adicional en su formulario.

Creación del formulario

Para empezar, necesitará crear su formulario y añadir su campo Teléfono, así como cualquier campo adicional que necesite en su formulario.

Si necesita ayuda para crear su formulario, consulte esta documentación.

para proporcionar validación adicional del campo de teléfono, primero deberá crear su formulario.

Establecer el formato del campo de teléfono

Para el propósito de esta documentación, vamos a evitar cualquier número de teléfono que comience con 8 o +8. Dependiendo del Formato que esté utilizando para el campo del formulario Teléfono, necesitará un fragmento de código u otro.

Seleccione el formato que desea utilizar en su campo de teléfono

Validación adicional del campo de teléfono

Ahora es el momento de añadir el fragmento de PHP que necesitará. Hay dos fragmentos diferentes y esto depende del Formato que se estableció para el campo Teléfono cuando creó su formulario.

Si necesita ayuda para añadir fragmentos a su sitio, consulte este tutorial.

Formato de teléfono de EE. UU.

/**
 * 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);

Formato de teléfono inteligente e internacional

/**
 * 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 );

Ambos fragmentos examinarán el valor del campo Teléfono cuando se envíe el formulario y, si comienza con el número 8 o +8, el formulario no se enviará y aparecerá un mensaje de error.

Al proporcionar una validación adicional del campo de teléfono, puede evitar fácilmente que se introduzcan números de tarificación adicional en su formulario.

¡Y eso es todo! Ha añadido correctamente validación adicional para su campo de formulario Teléfono. ¿También le gustaría evitar que se introduzcan ciertos correos electrónicos? Consulte nuestro tutorial sobre Cómo restringir dominios de correo electrónico.

Filtro de Referencia

wpforms_process_validate_phone