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.
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 );
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.