Resumo de IA
Descrição
The wpforms_process_validate_textarea action fires validation on the Paragraph Text form field when the form is submitted.
Parâmetros
- $field_id
- (int) Field ID.
- $field_submit
- (array) Original raw/unsanitized field value submitted for the field.
- $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
The wpforms_process_validate_textarea action is applied to an array for Paragraph Text form field. This function can be used for all form fields do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).
For example, to use this for an Email field, you would use do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).
It’s important to note that field values are not sanitized until later on in the processing, at wpforms_process_format_{$field_type}.the
Exemplos
You can use this action to scan the Paragraph Text for a list of words that you’d like block the form from sending, such as profanity or you could use this action to look for certain words that would trigger another action like setting a value in a hidden field on your form that you can filter from entries.
This example, we’re going to search for any profanity in this field. If there is any profanity, the form will display an error and not send.
/*
* 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: