Descrizione
Il wpforms_process_complete
si attiva alla fine dell'elaborazione del modulo (che ha avuto successo).
Parametri
- $campi
- (array) Valori/proprietà dei campi di inserimento sanificati.
- $ingresso
- (array) Originale $_POST globale.
- $form_data
- (array) Impostazioni/dati del modulo elaborati, preparati per essere utilizzati in seguito.
- $entry_id
- (int) ID voce. Restituirà 0 se la memorizzazione delle voci è disabilitata o se si utilizza WPForms Lite.
Fonte
wpforms/includes/class-process.php
Ulteriori informazioni
Il wpforms_process_complete
si attiva alla fine dell'elaborazione del modulo. Si attiva solo se l'inserimento è avvenuto con successo e non contiene errori. Il salvataggio della voce nella base dati e l'invio delle notifiche via e-mail avvengono prima dell'esecuzione di questo hook.
Una scelta popolare quando si costruiscono integrazioni API personalizzate o si ha bisogno di eseguire qualsiasi tipo di azione dopo che una voce è stata inviata con successo (ad esempio, l'invio di una notifica e-mail personalizzata, la creazione di un post o di un account utente, ecc).
È disponibile una versione alternativa di questo gancio per limitare facilmente il numero di moduli in base all'ID del modulo, wpforms_process_complete_{$form_id}
.
Nota importante: se si sta eseguendo un'elaborazione e si ha bisogno di poter restituire un errore e impedire l'elaborazione del modulo, utilizzare invece il gancio wpforms_process.
Esempi
Per un esempio, si veda Bill Erickson's Integrating your contact form with external services.
Ricordarsi di cambiare l'ID del modulo da 5
all'ID del modulo a cui si mira.
/** * 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 );