Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

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

Articles de référence

Comment ajouter une année à la date de soumission WPForms