Descripción

En wpforms_process_validate_text activa la validación en el campo Texto de una línea 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

La acción se aplica a una matriz para Texto de una línea 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}.

Para una mayor seguridad, se recomienda encarecidamente utilizar la validación del lado del servidor en lugar de confiar únicamente en JavaScript. Puede utilizar la función wpforms_process_validate_{$field_type} para validar diferentes tipos de campos. Por ejemplo, utilice wpforms_process_validate_email para un campo Email. Asegúrese de aplicar su validación antes de el wpforms_process_format_{$field_type} ya que es en ese momento cuando se limpian los datos.

Ejemplos

Puede utilizar esta acción para escanear el texto unif ilar en busca de cualquier cosa que desee validar antes de enviar el formulario.

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 single line text field for profanity.
 *
 * @link https://wpforms.com/developers/wpforms_process_validate_text/
 *
 * @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.
*/

function wpf_dev_profanity_filter_single_text( $field_id, $field_submit, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form ID #1423.
    if ( absint( $form_data[ 'id' ] ) !== 1423 ) {
        return;
    }

    //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_text', 'wpf_dev_profanity_filter_single_text', 10, 3 );

Artículos de referencia