Riassunto AI
Interessato a migliorare la sicurezza dei tuoi moduli web? Con un semplice snippet PHP, puoi bloccare efficacemente l'invio da domini specifici direttamente nel campo di testo del tuo modulo. In questo tutorial, ti guideremo attraverso il processo passo dopo passo per implementare questa funzionalità, assicurando che i tuoi moduli rimangano protetti da spam e invii dannosi.
Creazione del modulo
Inizieremo creando un nuovo modulo. Il nostro modulo è solo un semplice modulo di contatto in cui chiederemo loro di lasciare il proprio nome, email e qualsiasi commento aggiuntivo che desiderano aggiungere.
Per il nostro modulo di esempio, aggiungeremo i campi modulo Nome, Email, Testo Paragrafo e Captcha Personalizzato (per sicurezza aggiuntiva).

Se hai bisogno di assistenza, consulta la nostra utile guida su come creare un nuovo modulo.
Blocco dei domini
Ora è il momento di aggiungere i nostri snippet. Per qualsiasi assistenza su come e dove aggiungere snippet, ti preghiamo di consultare questo tutorial.
Campo di testo Paragrafo
/**
* Block domains inside the Paragraph Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_textarea( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_textarea' , 'wpf_dev_prevent_domains_textarea', 10, 3 );
Questo snippet analizzerà il campo modulo Testo Paragrafo per qualsiasi combinazione delle parole mostrate all'interno di preg_match e bloccherà l'invio del modulo se vero.

Campo di testo a riga singola
Puoi usare con la stessa facilità la stessa funzionalità anche per il campo Testo a riga singola. Lo snippet sarà quasi identico, ad eccezione del nome del filtro.
/**
* Block domains inside the Single Line Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_text( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_text' , 'wpf_dev_prevent_domains_text', 10, 3 );
E questo è tutto ciò di cui hai bisogno! Vuoi anche bloccare parolacce in questi campi? Dai un'occhiata al nostro tutorial su Come bloccare gli invii di moduli contenenti parolacce.
Azioni di riferimento
FAQ
D: Posso usarlo sul campo modulo Testo Arricchito?
R: Assolutamente! Ecco lo snippet per il campo modulo Testo Arricchito.
/**
* Block domains inside the Rich Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_richtext( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_richtext' , 'wpf_dev_prevent_domains_richtext', 10, 3 );
D: Come posso applicarlo ad altri campi?
R: Quasi tutti i campi hanno un qualche tipo di validazione. La maggior parte dei campi utilizzerà do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ). Dovrai semplicemente sostituire _{$field_type} con il tipo di campo.