Attenzione!

Questo articolo contiene codice PHP ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per personalizzazioni del codice o sviluppo di terze parti.

Per ulteriore assistenza, consulta il tutorial di WPBeginner su come aggiungere codice personalizzato.

Chiudi

Descrizione

L'azione wpforms_process_complete viene attivata alla fine dell'elaborazione (riuscita) di un invio del modulo.

Parametri

$fields
(array) Valori/proprietà dei campi dell'invio sanificati.
$entry
(array) Globale $_POST originale.
$form_data
(array) Impostazioni/dati del modulo elaborati, preparati per l'uso successivo.
$entry_id
(int) ID dell'invio. Restituirà 0 se l'archiviazione degli invii è disabilitata o si utilizza WPForms Lite.

Origine

wpforms/includes/class-process.php

Maggiori Informazioni

Il hook wpforms_process_complete viene attivato alla fine dell'elaborazione del modulo. Viene attivato solo se l'invio è andato a buon fine e non conteneva errori. Il salvataggio dell'invio nel database e l'invio delle notifiche email sono stati eseguiti prima dell'esecuzione di questo hook.

Una scelta popolare quando si creano integrazioni API personalizzate o quando è necessario eseguire qualsiasi tipo di azione dopo che un invio è stato completato con successo (ad es. inviare una notifica email personalizzata, creare un post o un account utente, ecc.).

È disponibile una versione alternativa di questo hook per limitare facilmente per ID modulo, wpforms_process_complete_{$form_id}.

Nota importante: Se stai eseguendo l'elaborazione e hai bisogno di poter restituire un errore e impedire l'elaborazione del modulo, usa invece il hook wpforms_process.

Esempi

Per un esempio, vedi Integrare il tuo modulo di contatto con servizi esterni di Bill Erickson.

Ricorda solo di cambiare il tuo ID modulo da 5 all'ID modulo che stai prendendo di 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 );

Articoli di riferimento

Come aggiungere un anno alla data di invio di WPForms