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

Articles de référence

Comment ajouter une année à la date d'entrée dans WPForms