Attenzione!

Questo articolo contiene codice PHP ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per personalizzazioni del codice o sviluppo di terze parti.

Per ulteriore assistenza, consulta il tutorial di WPBeginner su come aggiungere codice personalizzato.

Chiudi

Come creare una lista di blocco globale

Panoramica

Sei interessato a stabilire un elenco di domini bloccati a livello globale che si applichi a tutti i tuoi moduli? La creazione di un elenco di questo tipo garantirà che tutte le email di spam precedentemente segnalate vengano bloccate universalmente in tutti i tuoi WPForms tramite una singola funzione unificata.

Per impostazione predefinita, utilizzando l'elenco consentiti o l'elenco bloccati, puoi bloccare facilmente i domini per ciascun modulo utilizzando *@dominio-non-valido.com. Per saperne di più sull'impostazione di un elenco consentiti o bloccati, consulta questa guida utile.

Tuttavia, l'obiettivo principale di questo tutorial è stabilire un elenco globale, eliminando la necessità di modifiche individuali in ciascun modulo. Sfruttando le capacità di PHP, la costruzione di un elenco di questo tipo diventa un processo semplice e rapido, come dimostreremo in questo tutorial!

Aggiunta dello snippet

Ora è il momento di aggiungere lo snippet al nostro sito e personalizzare l'elenco con i nomi di dominio che vogliamo bloccare. Copia e incolla semplicemente questo snippet sul tuo sito.

Per qualsiasi assistenza su come e dove aggiungere snippet al tuo sito, consulta 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 email e lo confronterà con l'elenco globale che hai creato 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 tenta di inserire quel dominio e invia il modulo, vedrà un errore.

utilizzando questo snippet puoi facilmente creare un elenco globale di domini bloccati

E questo è tutto! Hai creato con successo un elenco globale di domini bloccati per tutti i tuoi WPForms. Vuoi anche bloccare parolacce nei tuoi moduli? Dai un'occhiata al nostro tutorial su Come bloccare l'invio di moduli contenenti parolacce.

Riferimento azione: wpforms_process_validate_email