Panoramica
Siete interessati a creare una denylist globale a livello di dominio che si applichi a tutti i vostri moduli? La creazione di un elenco di questo tipo garantirà che tutte le e-mail di spam precedentemente segnalate siano universalmente bloccate in tutti i vostri WPForm attraverso una singola funzione unificata.
Per impostazione predefinita, utilizzando le liste Allowlist o Denylist è possibile bloccare facilmente i domini per ciascun modulo utilizzando *@bad-domain.com
. Per saperne di più sull'impostazione di una Allowlist o di una Denylist, consultate questa utile guida.
Tuttavia, lo scopo principale di questo tutorial è quello di creare un elenco globale, eliminando la necessità di modifiche individuali in ogni modulo. Sfruttando le capacità di PHP, la costruzione di un tale elenco diventa un processo semplice e veloce, come dimostreremo in questo tutorial!
Aggiunta dello snippet
Ora è il momento di aggiungere lo snippet al nostro sito e di personalizzare l'elenco dei nomi di dominio che vogliamo bloccare. È sufficiente copiare e incollare questo snippet sul vostro sito.
Per assistenza su come e dove aggiungere gli snippet al vostro sito, consultate questo 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 );
Questo snippet esaminerà il nome di dominio inserito nel campo e-mail e lo confronterà con l'elenco globale costruito in questo snippet. I nomi di dominio possono essere elencati nel formato [email protected]. Ma ogni dominio è elencato con virgolette singole e poi separato da una virgola.
Quando un utente cerca di inserire quel dominio e invia il modulo, vedrà l'errore.
Ed ecco fatto! Avete creato con successo una denylist globale per tutti i vostri WPForm. Volete bloccare anche le bestemmie nei vostri moduli? Date un'occhiata al nostro tutorial su Come bloccare l'invio di moduli contenenti profanità.
Correlato
Riferimento azione: wpforms_process_validate_email