Attenzione!

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

Per maggiori informazioni, consultare il tutorial di WPBeginner sull'aggiunta di codice personalizzato.

Congedo

Come bloccare l'invio di moduli contenenti parolacce

Volete bloccare l'invio di moduli contenenti bestemmie? È possibile creare facilmente un elenco di parole imprecanti che blocchino l'invio di un modulo se si trovano all'interno del testo del paragrafo o di un campo di testo a riga singola, utilizzando un piccolo snippet di codice. In questo tutorial, vi illustreremo i passaggi per ottenere questo risultato con PHP.

Creazione del modulo

Per prima cosa, è necessario creare un nuovo modulo e aggiungere un testo a paragrafi o un testo a riga singola.

Se avete bisogno di aiuto per creare un modulo, consultate questa documentazione.

aggiungere un campo di testo singolo o di paragrafo al nuovo modulo

Blocco degli invii contenenti turpiloquio

Successivamente, si dovrà stilare un elenco di parole che si desidera aggiungere al filtro per le bestemmie. Una volta identificate le parole da bloccare, è necessario aggiungere uno di questi snippet al sito. Se avete bisogno di aiuto per aggiungere gli snippet al vostro sito, consultate questa documentazione.

Basta aggiungere ogni parola a $blocked_words separata da una virgola.

Campo del modulo Testo del paragrafo

/**
 * Prevent profanity words from Paragraph Text form fields.
 *
 * @link https://wpforms.com/developers/how-to-block-form-submissions-containing-profanity/
 */

function wpf_dev_profanity_filter_paragraph( $field_id, $field_submit, $form_data ) {

        // Create your list of profanity words separated by commas
	$blocked_words = array( 
		'badword1', 
		'badword2'
	);

    foreach( $blocked_words as $word ) {
        if(strpos($field_submit, $word) !== FALSE ) {
            wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No profanity allowed.', 'plugin-domain' );
            return;
        }
    }

}

add_action( 'wpforms_process_validate_textarea', 'wpf_dev_profanity_filter_paragraph', 10, 3 );

L'utilizzo di questo snippet bloccherà gli invii contenenti bestemmie all'interno del campo di testo del paragrafo del modulo

Campo modulo testo a riga singola

/**
 * Prevent profanity words from Single Line Text form fields.
 *
 * @link https://wpforms.com/developers/how-to-block-form-submissions-containing-profanity/
 */

function wpf_dev_profanity_filter_single_text( $field_id, $field_submit, $form_data ) {

        // Create your list of profanity words separated by commas
	$blocked_words = array( 
		'badword1', 
		'badword2'
	);

    foreach( $blocked_words as $word ) {
        if(strpos($field_submit, $word) !== FALSE ) {
            wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No profanity allowed.', 'plugin-domain' );
            return;
        }
    }

}

add_action( 'wpforms_process_validate_text', 'wpf_dev_profanity_filter_single_text', 10, 3 );

Campo del modulo Rich Text

/**
 * Prevent profanity words from Rich Text form fields.
 *
 * @link https://wpforms.com/developers/how-to-block-form-submissions-containing-profanity/
 */

function wpf_dev_profanity_filter_rich_text( $field_id, $field_submit, $form_data ) {

        // Create your list of profanity words separated by commas
	$blocked_words = array( 
		'badword1', 
		'badword2'
	);

    foreach( $blocked_words as $word ) {
        if(strpos($field_submit, $word) !== FALSE ) {
            wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No profanity allowed.', 'plugin-domain' );
            return;
        }
    }

}

add_action( 'wpforms_process_validate_richtext', 'wpf_dev_profanity_filter_rich_text', 10, 3 );

Ed ecco fatto! Ora avete creato e implementato un filtro per le bestemmie per i vostri campi di testo a riga singola e a paragrafo. Volete bloccare l'inserimento di URL nel vostro modulo? Consultate il nostro tutorial su Come bloccare gli URL all'interno dei campi del modulo.

Azioni di riferimento