Résumé IA
Description
L'action wpforms_process_complete se déclenche à la toute fin du traitement (réussi) d'une soumission de formulaire.
Paramètres
- $fields
- (array) Valeurs/propriétés des champs de saisie nettoyées.
- $entry
- (array) Global $_POST original.
- $form_data
- (array) Paramètres/données du formulaire traités, préparés pour une utilisation ultérieure.
- $entry_id
- (int) ID de la soumission. Retourne 0 si le stockage des soumissions est désactivé ou si vous utilisez WPForms Lite.
Source
wpforms/includes/class-process.php
Plus d'informations
Le hook wpforms_process_complete se déclenche à la toute fin du traitement du formulaire. Il ne se déclenche que si la soumission a réussi et n'a pas contenu d'erreurs. La sauvegarde de la soumission dans la base de données et l'envoi des notifications par e-mail sont effectués avant l'exécution de ce hook.
Un choix populaire lors de la création d'intégrations API personnalisées ou lorsque vous avez besoin d'effectuer une action après qu'une soumission a été soumise avec succès (par exemple, envoyer une notification par e-mail personnalisée, créer un article ou un compte utilisateur, etc.).
Une version alternative de ce hook est disponible pour limiter facilement par ID de formulaire, wpforms_process_complete_{$form_id}.
Note importante : Si vous effectuez un traitement et que vous devez pouvoir retourner une erreur et empêcher le traitement du formulaire, utilisez plutôt le hook wpforms_process.
Exemples
Pour un exemple, voir l'article de Bill Erickson : Intégrer votre formulaire de contact avec des services externes.
N'oubliez pas de changer l'ID 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 );