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

Descrição

A ação wpforms_process_validate_richtext dispara a validação no campo de formulário Rich Text quando o formulário é enviado.

Parâmetros

$field_id
(int) ID do campo.
$field_submit
(array) Valor original bruto/não sanitizado do campo enviado para o campo.
$form_data
(array) Configurações/dados do formulário processados, preparados para uso posterior.

Fonte

wpforms/includes/fields/class-base.php

Mais Informações

A ação é aplicada a um array para o campo de formulário Rich Text. 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 isso para um campo de Email, você usaria do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).

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

Exemplos

Você pode usar esta ação para verificar o Rich Text em busca de uma lista de palavras que você gostaria de bloquear o envio do formulário, como palavrões, ou você pode usar esta ação para procurar certas palavras que acionariam outra ação, como definir um valor em um campo oculto no seu formulário que você pode filtrar das entradas.

Neste exemplo, vamos procurar por qualquer palavrão neste campo. Se houver algum palavrão, o formulário exibirá um erro e não será enviado.

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