Visión general
¿Está interesado en establecer una lista de denegación global a nivel de dominio que se aplique a todos sus formularios? La creación de una lista de este tipo garantizará que cualquier correo electrónico no deseado previamente marcado se bloquee universalmente en todos sus formularios WPForms a través de una función única y unificada.
Por defecto, utilizando la Allowlist o Denylist puede bloquear fácilmente dominios para cada formulario utilizando *@bad-domain.com
. Para obtener más información sobre cómo configurar una lista de permitidos o una lista de denegados, consulte esta útil guía.
Sin embargo, el objetivo principal de este tutorial es establecer una lista global, eliminando la necesidad de ediciones individuales en cada formulario. Aprovechando las capacidades de PHP, la construcción de una lista de este tipo se convierte en un proceso sencillo y rápido, como vamos a demostrar en este tutorial.
Añadir el fragmento
Ahora es el momento de añadir el snippet a nuestro sitio y personalizar la lista por los nombres de dominio que queremos bloquear. Simplemente copia y pega este snippet en tu sitio.
Si necesita ayuda sobre cómo y dónde añadir fragmentos a su sitio, consulte este tutorial.
/* * Global denylist for domains on all WPForms. * * @link https://wpforms.com/developers/how-to-create-a-global-denylist/ */ function wpf_dev_blacklist_global_domains( $field_id, $field_submit, $form_data ) { // Find the domain name, anything after the @ symbol $domain = substr( strrchr( $field_submit, "@" ), 1 ); // Add the domains here, separated by commas $blacklist = array( 'deny.com', 'nope.com' ); // Customize the error message that will be shown if( in_array( $domain, $blacklist ) ) { wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'We apologize, this domain is not accepted.', 'wpforms' ); return; } } add_action('wpforms_process_validate_email', 'wpf_dev_blacklist_global_domains', 10, 3 );
Este fragmento mirará el nombre de dominio introducido en el campo de correo electrónico y lo cotejará con la lista global que ha creado en este fragmento. Los nombres de dominio pueden aparecer en el formato [email protected]. Pero cada dominio aparece entre comillas simples y separado por una coma.
Cuando cualquier usuario intente entrar en ese dominio y envíe el formulario, verá el error.
Y ¡listo! Ha creado con éxito una denylist global para todos sus WPForms. ¿Le gustaría bloquear profanidades en sus formularios? Eche un vistazo a nuestro tutorial sobre Cómo bloquear envíos de formularios que contengan blasfemias.
Relacionado
Acción de referencia: wpforms_process_validate_email