it-swarm.com.de

WooCommerce-Hook für Aktionen "Nach Zahlungseingang abgeschlossen"

Ich benutze WooCommerce und Wordpress. Ich habe einen benutzerdefinierten Lizenzschlüsselgenerator und möchte, dass er einen Lizenzschlüssel generiert, wenn jemand mein Plugin über WooCommerce erfolgreich kauft.

Es scheint ziemlich einfach zu sein:

  1. Der Nutzer schließt den Checkout auf meiner Website ab
  2. Der Benutzer wird zu Paypal weitergeleitet, wo er seine Zahlungsinformationen eingibt
  3. Paypal teilt meiner Website mit, dass die Zahlung abgeschlossen ist
  4. Ich schließe mich einer Art "Zahlung abgeschlossen" oder "order_complete" WooCommerce-Aktion an und erstelle die Lizenz.

Hier ist das Problem: Ich bin mir wirklich nicht sicher, welcher Haken dafür gut funktionieren würde. Woocommerce hat sein gesamte Sammlung von Hooks auf seiner Site aufgelistet, aber praktisch keine Dokumentation darüber, welches für was gut ist.

Basierend nur auf den Hakennamen würde ich denken, dass woocommerce_payment_complete wäre eine gute Aktion. Leider scheint es überhaupt nicht abgefeuert zu werden; Einige Orte, die ich gelesen habe, sagen, dass es nie gefeuert wird.

Ich habe auch etwas über Paypal IPN gelesen, aber ich verstehe nicht, wie ich mich in die Benachrichtigung einbinden kann (verbindet sich das mit einem Woocommerce-Hook?)

Kurz gesagt, ich möchte den Lizenzschlüssel generieren, sobald die Zahlung bestätigt wurde. Was muss ich einhängen, um dies zu erreichen?

32
Pete

Okay, ich habe ein paar mögliche Lösungen gefunden.

HANDEL MIT ZAHLUNGSBESTÄTIGUNG

Das Paypal Standard-Gateway von WooCommerce unterstützt den direkt in Paypal eingebauten IPN-Service. Sie möchten dies unabhängig von der gewählten Hook-Route verwenden.

EINRICHTEN DES Paypal IPN

Paypal IPN ist mit dem Konto verbunden, auf dem das Geld eingeht. Wenn Sie beispielsweise unter [email protected] bezahlt werden, müssen Sie das IPN mit diesem Konto einrichten. Alles was IPN ist, ist das Versenden einer "Zahlung abgeschlossen!" (Art) Benachrichtigung an die URL Ihrer Wahl. Um die URL auszuwählen, an die Paypal die Benachrichtigung senden soll, müssen Sie die folgenden Schritte ausführen:

  1. Melden Sie sich bei Paypal an
  2. Klicken Sie oben rechts auf das kleine Gesichtssymbol
  3. Klicken Sie auf "Profil und Einstellungen"
  4. Klicken Sie in der linken Seitenleiste auf "Meine Verkaufstools"
  5. Suchen Sie "Sofortige Zahlungsbenachrichtigungen" und klicken Sie auf "Aktualisieren".
  6. Aktivieren Sie sie und legen Sie die URL fest. Die URL Ihres WooCommerce Paypal Payments Standard-Gateways lautet: http://yoursite.com/?wc-api=WC_Gateway_Paypal (siehe WooCommerce Paypal Standard-Dokumentation ).
  7. Speichern Sie Ihre Einstellungen

Ihre WooCommerce-Installation hört jetzt von Paypal, wenn die Zahlung abgeschlossen ist. Oh, und nebenbei, stellen Sie sicher, dass:

  • Ihre "Empfänger-E-Mail" in Ihren Paypal-Einstellungen ist korrekt
  • fsockopen ist auf Ihrem Server aktiviert (Sie können diesen "Systemstatus" in Ihren WooCommerce-Einstellungen überprüfen)

JETZT KÖNNEN WIR AN DEN HAKEN ARBEITEN

OPTION 1: Automatische Vervollständigung von Bestellungen, deren Zahlung abgeschlossen ist, und Anmeldung bei woocommerce_order_status_completed für Ihre speziellen Aktionen/Funktionen

Damit Ihre Produkte bei verifizierter Zahlung automatisch vervollständigt werden, können Sie einfach das fabelhafte WooCommerce Autocomplete Order Plugin von Mirko Grewing installieren. Stellen Sie sicher, dass Sie die richtigen Einstellungen vorgenommen haben (diese werden in Ihren WooCommerce-Einstellungen auf der Registerkarte "Woo-Extra-Optionen" angezeigt).

Jetzt, da Ihre Bestellungen nach Überprüfung der Zahlungen automatisch ausgeführt werden, können Sie einfach Ihren Abschluss-Hook "woocommerce_order_status_completed" für Ihre spezielle Funktionalität verwenden.

Der Vorteil dieser Methode besteht darin, dass Sie eine abgeschlossene Reihenfolge festlegen können, unabhängig davon, ob Sie sie manuell abgeschlossen haben oder ob sie automatisch abgeschlossen wurde. Mit anderen Worten, es ist ziemlich vielseitig.

OPTION 2: Verbinden Sie sich mit dem woocommerce_payment_complete_order_status Filter, der eine erfolgreiche Zahlung anzeigt.

Ich denke, dass man ziemlich selbsterklärend ist. Der Vorteil dieser Methode besteht darin, dass sie so gut wie der erste Schritt im gesamten Prozess ist und vor dem obigen Abschluss-Hook stattfindet (wenn Sie Ihre Prioritäten entsprechend festgelegt haben).

Ich weiß nicht, ob einer besser ist als der andere, aber beide scheinen mein Ziel zu erreichen: Eine Aktion ausführen, nachdem die Zahlung bestätigt wurde.

27
Pete

woocommerce_payment_complete_order_status wird auch ausgelöst, wenn die Zahlung storniert wurde. Ich habe gerade Paypal als Gateway für Woocommerce 3.1.2 getestet.

Die Aktion woocommerce_payment_complete scheint nur zu feuern, wenn die Zahlung erfolgreich war.

14
Daniel T