¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Descripción

La acción wpforms_process_validate_richtext activa la validación en el campo de formulario Texto enriquecido 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 se aplica a una matriz para el campo de formulario Texto enriquecido. 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 enriquecido en busca de una lista de palabras que le gustaría bloquear el envío del formulario, como lenguaje obsceno, o podría usar esta acción para buscar ciertas palabras que activen otra acción, como establecer un valor en un campo oculto de 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_richtext/
 *
 * @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 #3382.
    if ( absint( $form_data[ 'id' ] ) !== 3382 ) {
        return $field_id;
    }

function wpf_dev_profanity_filter_rich_text( $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_richtext', 'wpf_dev_profanity_filter_rich_text', 10, 3 );

Artículos de Referencia