¡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

Descripción

La acción wpforms_process_validate_email activa la validación en el campo de formulario Dirección de correo electrónico cuando se envía el formulario.

Parámetros

$field_id
(int) ID del campo.
$field_submit
(array) Valor original sin procesar/sanitizar del campo enviado.
$form_data
(array) Configuración/datos del formulario procesados, preparados para ser utilizados más adelante.

Origen

wpforms/includes/class-process.php

Más Información

La acción wpforms_process_validate_email se aplica a una matriz para el campo de formulario Dirección de correo electrónico. Esta función se puede utilizar para todos los campos del formulario do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

Por ejemplo, para usar esto en un campo de Texto de una sola línea, usaría do_action( wpforms_process_validate_text, $field_id, $field_submit, $form_data ).

Es importante tener en cuenta que los valores de los campos no se limpian hasta más adelante en el procesamiento, en wpforms_process_format_{$field_type}.

Ejemplos

Puede usar esta acción para escanear la Dirección de correo electrónico en busca de una dirección de correo electrónico específica que hayamos marcado previamente como spam para que pueda ser bloqueada.

/*
 * Check the email address field for blocked emails.
 *
 * @link https://wpforms.com/developers/wpforms_process_validate_email/
 *
 * @param int     $field_id        Field ID.
 * @param array   $field_submit    Unsanitized field value submitted for the field.
 * @param array   $form_data       Form data and settings.
*/

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

    //Create your list of blocked email addresses separated by commas
    $blocked_emails = array( 
        '[email protected]', 
        '[email protected]'
    );
 
    foreach( $blocked_emails as $email ) {
        if(strpos($field_submit, $email) !== FALSE ) {
            wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'Your email address has been flagged as spam. Please contact the site administrator directly if you have further questions.', 'wpforms' );
            return;
        }
    }
}
 
add_action( 'wpforms_process_validate_email', 'wpf_dev_block_email_address', 10, 3 );

Referencia del artículo: Cómo crear una lista negra global