Description

Le wpforms_process_entry_save se déclenche lorsqu'une entrée est enregistrée dans la base de données.

Paramètres

$fields
(tableau) Valeurs/propriétés des champs d'entrée assainis.
Entrée
(array) Original $_POST global.
$form_id
(int) ID du formulaire.
$form_data
(tableau) Paramètres/données de formulaire traités, préparés pour être utilisés ultérieurement.

Source

wpforms/includes/class-process.php

Plus d'informations

L'action se déclenche une fois que l'entrée a été traitée avec succès, lorsque l'entrée est enregistrée dans la base de données. L'événement de confirmation et l'e-mail de notification sont déclenchés après l'exécution de ce crochet.

Vous trouverez ci-dessous le contexte dans lequel la wpforms_process_entry_save est exécuté.

Ce crochet est également utilisé dans wpforms/pro/wpforms-pro.phpqui charge les caractéristiques et les fonctionnalités spécifiques à la version payante du plugin.

/**
 * @param  array $fields
 * @param  array $entry
 * @param  int   $form_id
 * @param  array $form_data
 *
 * @return int
 */

public function entry_save( $fields, $entry, $form_id, $form_data = '' ) {

	do_action( 'wpforms_process_entry_save', $fields, $entry, $form_id, $form_data );

	return $this->entry_id;
}

Exemples

Vous pouvez facilement utiliser cette action pour déclencher quelque chose lorsque les entrées sont enregistrées dans la base de données.

N'oubliez pas de changer l'ID du formulaire de 5 pour qu'il corresponde à l'identifiant spécifique du formulaire sur lequel vous souhaitez exécuter votre code. Si vous supprimez cette vérification, le code sera exécuté pour tous les formulaires.

/**
 * Action that fires when an entry is saved to the database.
 *
 * @link  https://wpforms.com/developers/wpforms_process_entry_save/
 *
 * @param array  $fields    Sanitized entry field. values/properties.
 * @param array  $entry     Original $_POST global.
 * @param int    $form_id   Form ID. 
 * @param array  $form_data Form data and settings.
 */

function wpf_dev_process_entry_save( $fields, $entry, $form_id, $form_data ) {
 
    // Only run on my form with ID = 5
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
            return $fields;
        } 
 
    // Example checking for the Yes value of a checkbox field (ID 6) and if yes, we'll then run our code
    if($fields[6][ 'value' ] === 'Yes') {
		
	// run some code here

	}
}
add_action( 'wpforms_process_entry_save', 'wpf_dev_process_entry_save', 10, 4 );

Si vous avez besoin d'aide pour trouver les identifiants des formulaires et des champs, consultez ce tutoriel.

Articles de référence

Comment écraser les entrées des utilisateurs qui ont déjà soumis un formulaire ?