¡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 crear una lista negra global

Descripción general

¿Está interesado en establecer una lista negra global a nivel de dominio que se aplique a todos sus formularios? La creación de dicha lista garantizará que cualquier correo electrónico de spam previamente marcado se bloquee universalmente en todos sus WPForms a través de una función única y unificada.

Por defecto, utilizando la lista de permitidos o la lista negra, puede bloquear fácilmente dominios para cada formulario usando *@dominio-malo.com. Para obtener más información sobre cómo configurar una lista de permitidos o una lista negra, 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 dicha lista se convierte en un proceso sencillo y rápido, ¡tal como demostraremos en este tutorial!

Añadir el fragmento

Ahora es el momento de agregar el fragmento a nuestro sitio y personalizar la lista con los nombres de dominio que queremos bloquear. Simplemente copie y pegue este fragmento en su sitio.

Para cualquier ayuda sobre cómo y dónde agregar fragmentos a su sitio, revise 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 examinará el nombre de dominio introducido en el campo de correo electrónico y lo comparará con la lista global que ha creado en este fragmento. Los nombres de dominio se pueden listar en el formato [email protected]. Pero cada dominio se lista entre comillas simples y luego se separa por una coma.

Cuando cualquier usuario intente introducir ese dominio y envíe el formulario, verá el error.

con este fragmento puede crear fácilmente una lista negra global

¡Y eso es todo! Ha creado con éxito una lista negra global para todos sus WPForms. ¿Le gustaría también bloquear groserías en sus formularios? Eche un vistazo a nuestro tutorial sobre Cómo bloquear envíos de formularios que contienen groserías.

Referencia de acción: wpforms_process_validate_email