Resumo de IA
Descrição
A ação wpforms_process_validate_textarea dispara a validação no campo de formulário Texto longo 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 wpforms_process_validate_textarea é aplicada a um array para o campo de formulário Texto longo. 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 Texto longo 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_textarea/
*
* @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 ID #1423.
if ( absint( $form_data[ 'id' ] ) !== 1423 ) {
return;
}
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.', 'wpforms' );
return;
}
}
}
add_action( 'wpforms_process_validate_textarea', 'wpf_dev_profanity_filter_paragraph', 10, 3 );
Relacionado
Referências do Artigo: