¿Desea proporcionar validación adicional al campo Teléfono? Por ejemplo, si desea evitar que los usuarios introduzcan números gratuitos en el campo Teléfono, puede conseguirlo fácilmente con un pequeño fragmento de PHP. En este tutorial, le guiaremos a través de los pasos para evitar que se introduzcan números gratuitos en su formulario.
Creación del formulario
Para empezar, tendrá que crear su formulario y añadir el campo Teléfono a su formulario, así como cualquier otro campo adicional que necesite en su formulario.
Si necesita ayuda para crear su formulario, consulte esta documentación.
Establecer el formato del campo Teléfono
A efectos de esta documentación, vamos a evitar que cualquier número de teléfono que empiece por 8
o +8
. Dependiendo de Formato que está utilizando para el Teléfono dependerá del fragmento de código que deberá utilizar a continuación.
Validación adicional de campos telefónicos
Ahora es el momento de añadir el fragmento de PHP que necesitará. Hay dos fragmentos diferentes y esto depende de qué Formato se estableció para el campo Teléfono cuando creó su formulario.
Si necesitas ayuda para añadir snippets a tu sitio, consulta este tutorial.
Formato de teléfono en 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 mirarán el valor del campo Teléfono cuando se envíe el formulario y si empieza por el número 8 o +8 el formulario no se enviará y aparecerá un mensaje de error.
Y ya está. Ha añadido correctamente la validación adicional para su campo de formulario Teléfono. ¿Le gustaría también evitar que se introduzcan ciertos correos electrónicos? Echa un vistazo a nuestro tutorial sobre Cómo restringir dominios de correo electrónico.