Description

Le wpforms_process_validate_textarea déclenche la validation de l'élément Texte du paragraphe lorsque le formulaire est soumis.

Paramètres

$field_id
(int) ID du champ.
$field_submit
(array) Valeur originale brute/non nettoyée soumise pour le champ.
$form_data
(tableau) Paramètres/données de formulaire traités, préparés pour être utilisés ultérieurement.

Source

wpforms/includes/fields/class-base.php

Plus d'informations

Le wpforms_process_validate_textarea est appliquée à un tableau pour Texte du paragraphe champ de formulaire. Cette fonction peut être utilisée pour tous les champs de formulaire do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

Par exemple, pour l'utiliser dans le cadre d'un Courriel vous utiliserez do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).

Il est important de noter que les valeurs des champs ne sont assainies qu'à un stade ultérieur du traitement, à l'étape wpforms_process_format_{$field_type}.le

Exemples

Vous pouvez utiliser cette action pour rechercher dans le texte du paragraphe une liste de mots dont vous aimeriez empêcher l'envoi au formulaire, tels que les blasphèmes, ou pour rechercher certains mots qui déclencheraient une autre action, comme la définition d'une valeur dans un champ caché de votre formulaire, que vous pouvez filtrer à partir des entrées.

Dans cet exemple, nous allons rechercher les grossièretés dans ce champ. Si c'est le cas, le formulaire affichera une erreur et ne sera pas envoyé.

/*
 * 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 );

Références de l'article :