Atenção!

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

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

Ignorar

Descrição

A ação wpforms_process_validate_richtext executa a validação no campo de formulário Texto Rico quando o formulário é submetido.

Parâmetros

$field_id
(int) ID do campo.
$field_submit
(array) Valor original não sanitizado submetido para o campo.
$form_data
(array) Configurações/dados do formulário processados, preparados para serem usados posteriormente.

Origem

wpforms/includes/fields/class-base.php

Mais Informações

A ação é aplicada a um array para o campo de formulário Texto Rico. Esta função pode ser usada para todos os campos de formulário do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

Por exemplo, para usar isto para um campo de Email, usaria do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).

É importante notar que os valores dos campos não são sanitizados até mais tarde no processamento, em wpforms_process_format_{$field_type}.

Exemplos

Pode usar esta ação para verificar o Texto Rico em busca de uma lista de palavras que gostaria de impedir o envio do formulário, como profanidade, ou pode usar esta ação para procurar certas palavras que acionariam outra ação, como definir um valor num campo oculto no seu formulário que pode filtrar das entradas.

Neste exemplo, vamos procurar por qualquer profanidade neste campo. Se houver alguma profanidade, o formulário exibirá um erro e não enviará.

/*
 * Check the paragraph text field for profanity.
 *
 * @link https://wpforms.com/developers/wpforms_process_validate_richtext/
 *
 * @param int     $field_id        Field ID.
 * @param array   $field_submit    Unsanitized field value submitted for the field.
 * @param array   $form_data       Form data and settings.
*/

    // Optional, you can limit to specific forms. Below, we restrict output to form #3382.
    if ( absint( $form_data[ 'id' ] ) !== 3382 ) {
        return $field_id;
    }

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.', 'wpforms' );
            return;
        }
    }
 
}
 
add_action( 'wpforms_process_validate_richtext', 'wpf_dev_profanity_filter_rich_text', 10, 3 );

Artigos de Referência