Descripción

En wpforms_process_validate_textarea activa la validación en el campo Texto del párrafo al enviar el formulario.

Parámetros

$campo_id
(int) ID de campo.
$campo_submitir
(matriz) Valor de campo original sin procesar/no digitalizado enviado para el campo.
$form_data
(array) Ajustes/datos del formulario procesados, preparados para su uso posterior.

Fuente

wpforms/includes/fields/class-base.php

Más información

En wpforms_process_validate_textarea se aplica a una matriz para Texto del párrafo campo de formulario. Esta función puede utilizarse para todos los campos de formulario do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

Por ejemplo, para Correo electrónico se utilizarí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 desinfectan hasta más adelante en el procesamiento, en wpforms_process_format_{$field_type}.la

Ejemplos

Puede utilizar esta acción para escanear el Texto del Párrafo en busca de una lista de palabras que le gustaría bloquear el envío del formulario, como blasfemias o podría utilizar esta acción para buscar ciertas palabras que desencadenarían otra acción como establecer un valor en un campo oculto de su formulario que puede filtrar de las entradas.

En este ejemplo, vamos a buscar cualquier blasfemia en este campo. Si hay alguna blasfemia, 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 );

Referencias del artículo: