Comment créer une liste de refus globale

Vue d'ensemble

Êtes-vous intéressé par l'établissement d'une liste de dénominations globale au niveau du domaine qui s'applique à tous vos formulaires ? L'élaboration d'une telle liste garantira que tous les courriels de spam précédemment signalés sont universellement bloqués dans tous vos formulaires WPForms grâce à une fonction unique et unifiée.

Par défaut, à l'aide de la liste d'autorisations ou de refus, vous pouvez facilement bloquer des domaines pour chaque formulaire à l'aide de la fonction *@bad-domain.com. Pour en savoir plus sur la configuration d'une liste d'autorisations ou de refus, consultez ce guide utile.

Cependant, l'objectif principal de ce tutoriel est d'établir une liste globale, éliminant ainsi le besoin de modifications individuelles dans chaque formulaire. En exploitant les capacités de PHP, la construction d'une telle liste devient un processus simple et rapide, comme nous allons le démontrer dans ce tutoriel !

Ajout du snippet

Il est maintenant temps d'ajouter l'extrait à notre site et de personnaliser la liste en fonction des noms de domaine que nous voulons bloquer. Il suffit de copier et de coller cet extrait sur votre site.

Si vous avez besoin d'aide pour savoir comment et où ajouter des snippets à votre site, veuillez consulter ce tutoriel.

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

Ce snippet examinera le nom de domaine saisi dans le champ email et le vérifiera par rapport à la liste globale que vous avez construite dans ce snippet. Les noms de domaine peuvent être listés au format [email protected]. Mais chaque domaine est listé entre guillemets simples et séparés par une virgule.

Lorsqu'un utilisateur tente d'entrer dans ce domaine et soumet le formulaire, il voit apparaître l'erreur.

En utilisant cet extrait, vous pouvez facilement créer une liste globale de noms.

Et le tour est joué ! Vous avez réussi à créer une liste de refus globale pour tous vos WPForms. Souhaitez-vous également bloquer les injures dans vos formulaires ? Jetez un coup d'œil à notre tutoriel sur Comment bloquer les soumissions de formulaires contenant des blasphèmes.

Référence de l'action : wpforms_process_validate_email