Anmelden
Loslegen

Easy Digital Downloads Dokumentation

Dokumentation, Referenzmaterialien und Tutorials für Easy Digital Downloads 

Benutzerdefinierten Code nach Abschluss einer Bestellung hinzufügen

In Easy Digital Downloads 3.2.0 wurden die after order actions eingeführt, um die veralteten after payment actions zu ersetzen. Dieser Hook bietet Entwicklern eine Möglichkeit, intensive Aktionen zu verarbeiten, wenn eine Zahlung abgeschlossen ist, ohne die Geschwindigkeit und Leistung des Endbenutzers beim Abschluss des Kaufs zu beeinträchtigen. Dies ist eine Anleitung, wie man eine After-Order-Aktion hinzufügt.

Einführung in After Order Actions

Wenn Sie zusätzliche Aktionen ausführen möchten, wenn eine Bestellung als „abgeschlossen“ markiert wird, sollten Sie den Hook edd_after_order_actions anstelle des Hooks edd_complete_purchase verwenden. Was ist der Unterschied zwischen diesen beiden Hooks?

  • edd_complete_purchase – Läuft während des Kaufvorgangs, nachdem der Benutzer auf die Schaltfläche „Kauf abschließen“ geklickt hat und bevor die Seite „Kaufbestätigung“ geladen wird. Dieser Hook sollte für „geschäftskritische“ Aufgaben verwendet werden, da er die wahrgenommene Zeit beeinflusst, die der Benutzer für den Abschluss seines Kaufs benötigt. Beispiele für die Verwendung dieses Hooks sind das Erstellen von Lizenzschlüsseln, das Generieren von Abonnements oder alles, was der Benutzer auf der Belegseite sichtbar haben muss.
  • edd_after_order_actions – Läuft ca. 30 Sekunden nach Abschluss des Kaufs über das WP_Cron-System. Dieser Hook sollte verwendet werden, um zusätzliche API-Aufrufe, aufwendige Datenbankabfragen und Aufgaben durchzuführen, die als nicht geschäftskritisch für den Abschluss des Kaufs durch den Benutzer angesehen werden sollten. Tolle Beispiele hierfür sind das Hinzufügen von Benutzern zu Mailinglisten, die Berechnung von Statistiken für einen Benutzer, das Aktualisieren von Caches usw.

Welche Argumente werden an den Hook übergeben?

Der Hook edd_after_order_actions sendet drei Argumente:

  • Die Bestell-ID als Ganzzahl
  • Das Objekt EDD\Orders\Order
  • Das Objekt EDD_Customer

Welche Bestellstatus sind in „abgeschlossen“ enthalten?

Easy Digital Downloads verwendet den Status complete, um eine Bestellung als abgeschlossen zu markieren. Wenn Sie die Recurring Payments-Erweiterung integrieren oder verwenden, wird der Status edd_subscription ebenfalls als „abgeschlossene“ Bestellung betrachtet. Wenn Sie Ihre Aktion nur für den ursprünglichen Kauf ausführen möchten (und Abonnementerneuerungen ignorieren möchten), müssen Sie den $order->status auf den Wert complete überprüfen, bevor Sie mit Ihrer Integration fortfahren.

Warum ist WP_Cron erforderlich?

WP_Cron ist ein Hintergrundprozess, den Ihre WordPress-Website verwendet, um Aufgaben abzuschließen, ohne die Benutzererfahrung beim Anzeigen Ihrer Website zu beeinträchtigen. Wenn auf Ihrer Website Traffic generiert wird, bevor die Seite vollständig geladen ist, ermittelt WordPress, ob Hintergrundaufgaben abgeschlossen werden müssen. Wenn ja, wird ein Hintergrundprozess gestartet, um diese ausstehenden Aufgaben zu bearbeiten.

Was passiert, wenn mein Hoster WP_Cron deaktiviert?

Obwohl wir unser Bestes tun, um zu erkennen, ob WP_Cron funktioniert, kann es vorkommen, dass wir dies nicht richtig erkennen können. Wenn Ihr Hoster oder Server WP_Cron deaktiviert oder so modifiziert hat, dass es mit einer vordefinierten Frequenz ausgeführt wird, müssen Sie diese Funktion möglicherweise manuell deaktivieren. Es gibt einen Filter, wenn Sie sich entscheiden, keine After-Action-Hooks zu verwenden. In diesem Fall greift EDD zurück und führt die Aktionen zum Zeitpunkt des Abschlusses aus und vermeidet den verzögerten Prozess.

HINWEIS: Da dieses System für After-Order-Aktionen von WP_Cron abhängt, sollte es nicht für als „geschäftskritisch“ betrachtete Dinge verwendet werden. Es ist lediglich eine Möglichkeit, aufwendige Integrationen mit APIs und großen Datenmengen auszulagern, die die Kaufdaten nicht direkt beeinflussen.

Wichtige Punkte zu After-Order-Aktionen

  • Auslösung über WP_Cron
  • Kann über Filter deaktiviert werden (edd_use_after_payment_actions)
  • Standardmäßig wird es für 30 Sekunden nach dem Kauf geplant, kann aber über einen Filter geändert werden.
  • Die Datenbanktabelle der Bestellung enthält eine Spalte für die Zeit, zu der die Aktionen abgeschlossen wurden.

Gibt es ein Beispiel?

Wir haben eine „Vorlage“ für die Integration mit dem Hook edd_after_order_actions in unserer WP Code-Bibliothek erstellt. Sie kann hier eingesehen werden:

Migration Ihres Codes von edd_after_payment_actions

Wenn Sie zuvor mit dem Hook edd_after_payment_actions integriert haben, ist die gute Nachricht, dass die Migration zu diesem neuen, effizienteren Hook ziemlich einfach ist.

Der Hauptunterschied ist die Änderung des zweiten Parameters. Anstatt die Zahlung als EDD_Payment-Objekt zu senden, wird ein Order-Objekt gesendet.

Was this article helpful?

Verkaufen Sie noch heute!

Schließen Sie sich über 50.000 klugen Shop-Besitzern an und nutzen Sie die einfachste Methode, um digitale Produkte mit WordPress zu verkaufen.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]