Beschreibung

Die wpforms_process_complete Aktion wird am Ende der (erfolgreichen) Verarbeitung des Formulareintrags ausgelöst.

Parameter

$Felder
(array) Bereinigte Werte/Eigenschaften von Eingabefeldern.
$Eintrag
(array) Original $_POST global.
$form_data
(Array) Verarbeitete Formulareinstellungen/Daten, die für die spätere Verwendung vorbereitet sind.
$Eintrag_id
(int) Eintrags-ID. Gibt 0 zurück, wenn die Speicherung von Einträgen deaktiviert ist oder WPForms Lite verwendet wird.

Quelle

wpforms/includes/class-process.php

Mehr Informationen

Die wpforms_process_complete wird ganz am Ende der Formularverarbeitung ausgelöst. Er wird nur ausgelöst, wenn der Eintrag erfolgreich war und keine Fehler enthielt. Das Speichern des Eintrags in der Datenbank und das Senden der E-Mail-Benachrichtigungen erfolgen vor der Ausführung dieses Hooks.

Eine beliebte Wahl, wenn es darum geht, benutzerdefinierte API-Integrationen zu erstellen oder irgendeine Aktion auszuführen, nachdem ein Eintrag erfolgreich übermittelt wurde (z. B. Senden einer benutzerdefinierten E-Mail-Benachrichtigung, Erstellen eines Beitrags oder eines Benutzerkontos usw.).

Eine alternative Version dieses Hooks ist verfügbar, um eine einfache Begrenzung nach Formular-ID zu ermöglichen, wpforms_process_complete_{$form_id}.

Wichtiger Hinweis: Wenn Sie eine Verarbeitung durchführen und in der Lage sein müssen, einen Fehler zurückzugeben und die Formularverarbeitung zu verhindern, verwenden Sie stattdessen den wpforms_process-Haken.

Beispiele

Ein Beispiel finden Sie in Bill Ericksons Integration Ihres Kontaktformulars in externe Dienste.

Denken Sie nur daran, Ihre Formular-ID von 5 auf die Formular-ID, auf die Sie abzielen.

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

Referenzartikel

Hinzufügen einer Jahreszahl zum WPForms-Eingabedatum