Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Como Bloquear Envio de Formulários Contendo Profanidade

Gostaria de bloquear envios do seu formulário que contenham palavrões? Você pode facilmente criar uma lista de palavras de baixo calão que impedirão qualquer envio de formulário se forem encontradas em seu campo Texto de Parágrafo ou em um campo Texto de Linha Única usando um pequeno trecho de código. Neste tutorial, vamos guiá-lo pelas etapas de como conseguir isso com PHP.

Criando seu formulário

Primeiro, você precisará criar um novo formulário e adicionar um campo Texto de Parágrafo ou Texto de Linha Única.

Se precisar de ajuda para criar um formulário, consulte esta documentação.

adicione um campo de formulário de texto único ou de parágrafo ao seu novo formulário

Bloqueando envios que contenham palavrões

Em seguida, crie uma lista de palavras que você deseja adicionar ao seu filtro de palavrões. Assim que você identificar as palavras que deseja bloquear, precisará adicionar um destes trechos ao seu site. Se precisar de ajuda para adicionar trechos ao seu site, consulte esta documentação.

Você adicionará cada palavra ao seu $blocked_words separada por vírgula.

Campo de formulário de Texto de Parágrafo

/**
 * 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 );

Usar este trecho bloqueará envios que contenham palavrões dentro do campo de formulário de texto de parágrafo

Campo de formulário de Texto de Linha Única

/**
 * 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 de formulário de Texto Rico

/**
 * 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 );

E é isso! Você criou e implementou um filtro de palavrões para seus campos de formulário Texto de Linha Única e Texto de Parágrafo. Gostaria de bloquear URLs de serem inseridos no seu formulário? Confira nosso tutorial sobre Como Bloquear URLs Dentro dos Campos do Formulário.

Ações de Referência