Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

Beschreibung

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

Parameter

$fields
(array) Bereinigte Feldwerte/Eigenschaften des Eintrags.
$entry
(array) Original $_POST Global.
$form_data
(array) Verarbeitete Formulareinstellungen/Daten, die zur späteren Verwendung vorbereitet sind.
$entry_id
(int) Eintrags-ID. Gibt 0 zurück, wenn die Eintrags-Speicherung deaktiviert ist oder WPForms Lite verwendet wird.

Quelle

wpforms/includes/class-process.php

Weitere Informationen

Der wpforms_process_complete Hook wird 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 beim Erstellen benutzerdefinierter API-Integrationen oder wenn Aktionen nach erfolgreicher Übermittlung eines Eintrags durchgeführt werden müssen (z. B. Senden einer benutzerdefinierten E-Mail-Benachrichtigung, Erstellen eines Beitrags oder Benutzerkontos usw.).

Eine alternative Version dieses Hooks ist verfügbar, um einfach nach Formular-ID zu filtern: wpforms_process_complete_{$form_id}.

Wichtiger Hinweis: Wenn Sie eine Verarbeitung durchführen und einen Fehler zurückgeben und die Formularverarbeitung verhindern müssen, verwenden Sie stattdessen den Hook wpforms_process.

Beispiele

Ein Beispiel finden Sie in Bill Ericksons Integration Ihres Kontaktformulars mit externen Diensten.

Denken Sie daran, Ihre Formular-ID von 5 auf die Ziel-Formular-ID zu ändern.

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

So fügen Sie dem WPForms-Eintragsdatum ein Jahr hinzu