<html lang="fr-fr" dir="ltr"><head></head><body>### [wpforms_process](https://wpforms.com/developers/wpforms_process/)

**Publié :** 12 février 2021
**Auteur :** Équipe éditoriale

**Extrait :** Action qui se déclenche lors du traitement d'une soumission de formulaire, après que la validation initiale des champs a réussi.


**Contenu :**

## Description

Action qui se déclenche lors du traitement d'une soumission de formulaire, après que la validation initiale des champs a réussi.

## Paramètres

$fields*tableau* Valeurs/propriétés des champs de soumission nettoyées.$entry*tableau* Globale $\_POST originale.$form\_data*tableau* Paramètres/données du formulaire.## Source

`wpforms/includes/class-process.php`

## Plus d'informations

L'action `wpforms_process` se déclenche vers la fin du traitement d'une soumission de formulaire. Elle s'exécute après que tous les champs initiaux du formulaire ont été validés et nettoyés.

Ce hook doit être utilisé lorsque l'action a potentiellement besoin de retourner une erreur et d'arrêter le traitement du formulaire (voir les **Exemples** ci-dessous pour plus de détails).

Exemples : vérifier si un compte utilisateur existe ou valider des données pour une passerelle de paiement.

Veuillez noter que le traitement du formulaire peut toujours être arrêté/empêché après le déclenchement de ce hook, par d'autres codes utilisant le même hook.

Voir la note ci-dessous concernant un autre hook similaire qui se déclenche après que **toutes** les validations sont réussies.

**Note importante :** Si vous effectuez un traitement et n'avez pas besoin de validation ou de l'ID de soumission, consultez [wpforms\_process\_complete](https://wpforms.com/developers/wpforms_process_complete/ "wpforms_process_complete").

## Exemples

Dans l'exemple de code, vous verrez que nous vérifions d'abord l'ID du formulaire pour nous assurer qu'il correspond au formulaire ciblé. Ensuite, nous vérifions un champ spécifique (par son ID) pour voir s'il est vide.

N'oubliez pas de changer l'ID du formulaire de `5` pour qu'il corresponde à votre ID de formulaire et de changer le `'4'` pour qu'il corresponde à votre ID de champ.

```

/**
 * Action qui se déclenche lors du traitement d'une soumission de formulaire après la validation initiale des champs.
 *
 * @link   https://wpforms.com/developers/wpforms_process/
 *
 * @param  array  $fields    Valeurs/propriétés des champs de soumission nettoyées.
 * @param  array  $entry     Globale $_POST originale.
 * @param  array  $form_data Données et paramètres du formulaire.
 */

function wpf_dev_process( $fields, $entry, $form_data ) {
     
    // Facultatif, vous pouvez limiter à des formulaires spécifiques. Ci-dessous, nous limitons la sortie au
    // formulaire n°5.
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return $fields;
    }
     
    // vérifie le champ ID 4 pour voir s'il est vide et si c'est le cas, déclenche l'erreur    
    if(empty( $fields[4][ 'value' ]) ) 
        {
            // Ajoute aux erreurs globales. Cela empêchera la soumission du formulaire d'être enregistrée dans la base de données.
            // Décommentez la ligne ci-dessous si vous avez besoin d'afficher l'erreur au-dessus du formulaire.
            // wpforms()-&gt;process-&gt;errors[ $form_data[ 'id' ] ] = esc_html__( 'Une erreur s'est produite.', 'plugin-domain' );    
 
            // Vérifie le champ ID 4 et affiche un message d'erreur en haut du formulaire et sous le champ spécifique
               wpforms()-&gt;process-&gt;errors[ $form_data[ 'id' ] ] [ '4' ] = esc_html__( 'Une erreur s'est produite.', 'plugin-domain' );
 
            // Ajoutez une logique supplémentaire (quoi faire si l'erreur n'est pas affichée)
        }
    }
add_action( 'wpforms_process', 'wpf_dev_process', 10, 3 );
```

## FAQ

#### Q : Comment cibler cela pour deux formulaires différents ?

**R :** Si vous souhaitez utiliser cette fonction pour seulement certains formulaires mais pas tous, il vous suffit d'utiliser le symbole en PHP qui signifie « **ou** ».

Par exemple, dans l'extrait ci-dessus, vous pouvez voir `if ( absint( $form_data[ 'id' ] ) !== 5 )`, cela signifie simplement que nous allons exécuter cet extrait uniquement sur le formulaire ID **5**. Mais que faire si nous avions quelques formulaires différents sur lesquels nous voulions que cela s'exécute ?

Il existe plusieurs options, examinons chaque option ci-dessous.

###### 1) Utilisation de fonctions multiples

Si vous souhaitez simplement dupliquer la fonction, donnez un nouveau nom à la fonction et mettez à jour le numéro d'ID du formulaire. Vous copiez et collez toute la fonction, puis vous changez ce nom `wpf_dev_process` pour quelque chose d'unique au début et à la fin de la fonction. Ce n'est pas la méthode la plus propre car elle ajoutera de nombreuses lignes supplémentaires à votre fichier de fonctions, mais elle est plus facile à lire et toujours efficace.

###### 2) Ajout des ID de formulaires supplémentaires

La méthode la plus simple consiste à utiliser l'instruction PHP `or` et à ajouter les numéros d'ID supplémentaires. Le symbole PHP pour **ou** est **||et** l'ID de formulaire 7, vous auriez `if ( absint( $form_data[ 'id' ] ) !== 5 || $form_data[ 'id' ] ) !== 7)`.

## Articles de référence

- [Comment valider un champ d'URL de médias sociaux dans votre formulaire](https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/ "Comment valider un champ d'URL de médias sociaux dans votre formulaire")
- [Comment restreindre les nombres dans un champ de formulaire de texte sur une seule ligne](https://wpforms.com/developers/how-to-restrict-numbers-in-a-single-line-text-form-field/ "Comment restreindre les nombres dans un champ de formulaire de texte sur une seule ligne")
- [Comment fournir une restriction d'âge sur le champ de formulaire Datepicker](https://wpforms.com/developers/how-to-provide-an-age-restriction-on-the-datepicker-form-field/ "Comment fournir une restriction d'âge sur le champ de formulaire Datepicker")
- [Comment comparer deux dates dans le même formulaire](https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/ "Comment comparer deux dates dans le même formulaire")
- [Comment ajouter une validation de champ de code postal sur vos formulaires](https://wpforms.com/developers/how-to-add-zip-code-field-validation-on-your-forms/ "Comment ajouter une validation de champ de code postal sur vos formulaires")
- [Comment effectuer des comparaisons de champs dans vos WPForms](https://wpforms.com/developers/how-to-perform-field-comparisons-within-your-wpforms/ "Comment effectuer des comparaisons de champs dans vos WPForms")
- [Comment ajouter une validation de champ d'adresse pour Authorize.net](https://wpforms.com/developers/how-to-add-address-field-validation-for-authorize-net/ "Comment ajouter une validation de champ d'adresse pour Authorize.net")

**Catégories :** Hooks d'action

**Tags :** Traitement des soumissions, PHP

---</body></html>