Description
Le wpforms_process_complete
se déclenche à la toute fin du traitement (réussi) de la saisie du formulaire.
Paramètres
- $fields
- (tableau) Valeurs/propriétés des champs d'entrée assainis.
- Entrée
- (array) Original $_POST global.
- $form_data
- (tableau) Paramètres/données de formulaire traités, préparés pour être utilisés ultérieurement.
- $entry_id
- (int) ID de l'entrée. Retourne 0 si le stockage des entrées est désactivé ou si l'on utilise WPForms Lite.
Source
wpforms/includes/class-process.php
Plus d'informations
Le wpforms_process_complete
se déclenche à la toute fin du traitement du formulaire. Il ne se déclenche que si l'entrée est réussie et ne contient pas d'erreurs. L'enregistrement de l'entrée dans la base de données et l'envoi des notifications par courrier électronique sont effectués avant l'exécution de ce crochet.
Un choix populaire lors de la création d'intégrations API personnalisées ou lorsqu'il est nécessaire d'effectuer une action après qu'une entrée a été soumise avec succès (par exemple, envoi d'une notification par courriel personnalisée, création d'un article ou d'un compte d'utilisateur, etc.)
Une version alternative de ce crochet est disponible pour faciliter la limitation par ID de formulaire, wpforms_process_complete_{$form_id}
.
Remarque importante: si vous effectuez un traitement et que vous devez être en mesure de renvoyer une erreur et d'empêcher le traitement du formulaire, utilisez plutôt le crochet wpforms_process.
Exemples
Pour un exemple, voir l'article de Bill Erickson intitulé "Integrating your contact form with external services" (Intégrer votre formulaire de contact avec des services externes).
N'oubliez pas de changer l'identifiant de votre formulaire de 5
à l'ID du formulaire que vous ciblez.
/** * This will fire at the very end of a (successful) form entry. * * @link https://wpforms.com/developers/wpforms_process_complete/ * * @param array $fields Sanitized entry field values/properties. * @param array $entry Original $_POST global. * @param array $form_data Form data and settings. * @param int $entry_id Entry ID. Will return 0 if entry storage is disabled or using WPForms Lite. */ function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #5. if ( absint( $form_data[ 'id' ] ) !== 5 ) { return; } // Get the full entry object $entry = wpforms()->entry->get( $entry_id ); // Fields are in JSON, so we decode to an array $entry_fields = json_decode( $entry->fields, true ); // Check to see if user selected 'yes' for callback if($entry_fields[6][ 'value' ] === 'Yes') { // Set the hidden field to 'Needs Callback' to filter through entries $entry_fields[7][ 'value' ] = 'Needs Callback'; } // Convert back to json $entry_fields = json_encode( $entry_fields ); // Save changes wpforms()->entry->update( $entry_id, array( 'fields' => $entry_fields ), '', '', array( 'cap' => false ) ); } add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );