Resumen de IA
Descripción
La acción wpforms_process_validate_textarea activa la validación en el campo de formulario Texto de párrafo cuando se envía el formulario.
Parámetros
- $field_id
- (int) ID del campo.
- $field_submit
- (array) Valor original sin procesar/sanitizar del campo enviado.
- $form_data
- (array) Configuración/datos del formulario procesados, preparados para ser utilizados más adelante.
Origen
wpforms/includes/fields/class-base.php
Más Información
La acción wpforms_process_validate_textarea se aplica a una matriz para el campo de formulario Texto de párrafo. Esta función se puede utilizar para todos los campos de formulario do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).
Por ejemplo, para usar esto en un campo de Correo electrónico, usaría do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).
Es importante tener en cuenta que los valores de los campos no se sanitizan hasta más tarde en el procesamiento, en wpforms_process_format_{$field_type}.
Ejemplos
Puede usar esta acción para escanear el Texto de párrafo en busca de una lista de palabras que le gustaría bloquear para que el formulario no se envíe, como groserías, o podría usar esta acción para buscar ciertas palabras que activen otra acción, como establecer un valor en un campo oculto en su formulario que pueda filtrar de las entradas.
En este ejemplo, vamos a buscar cualquier grosería en este campo. Si hay alguna grosería, el formulario mostrará un error y no se enviará.
/*
* 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
Referencias del artículo: