WooCommerce – Bestellungen nach PayPal Zahlung automatisch abschließen

Gehörst du auch zu denjenigen, die digitale Produkte in Ihrem WooCommerce Shop verkaufen, also Produkte, die nach dem Kauf und der erfolgten Bezahlung direkt herunter geladen werden können?

Dann hast du vielleicht oder deine Kunden auch das Problem, dass nach erfolgter Zahlung mit PayPal die Bestellung nicht automatisch abgeschlossen wird und der Käufer somit keine sofortige Möglichkeit bekommt, sein gekauftes Produkte herunter zu laden.

Ich jedenfalls hatte häufiger diese Schwierigkeit in meinen WooCommerce Shops bzw. in den WooCommerce Shops meiner Kunden. Daher habe ich nach einer Lösung gesucht, dies auf einfachem Wege selbst zu steuern. Diese Lösung, die mir seither sehr gute Dienste leistet, möchte ich euch nicht vorenthalten.

Hier also ein paar Codezeilen, die eure Bestellungen nach gewünschter Zahlungsart direkt als completed kennzeichnet. Die Zeilen kommen in die functions.php eures Themes. Bitte denkt daran, wenn nicht schon geschehen, ein Child-Theme einzurichten. Ansonsten lauft ihr Gefahr, dass eure Änderungen mit dem nächsten Update überschrieben werden. Wie immer erfolgt weiter unten eine kurze Erläuterung:

 

Um an der richtigen Stelle einzugreifen, nutze ich den Action-Hook woocommerce_thankyou. Die Bestellung ist eingegangen, die Bezahlung mittels PayPal ist erfolgt. Gibt es keine Bestellnummer ($order_id), ist irgendwas schief gelaufen und die Funktion wird nicht weiter verarbeitet (Zeilen 6-8).

Prüfung, welche Zahlungsart als erledigt gekennzeichnet werden soll

Jetzt kommt der entscheidende Schritt. Es wird die Zahlungsweise des Kunden geprüft und die Zahlungsarten abgefragt, die NICHT zu einem sofortigen Bestellabschluss führen sollen (Zeilen 13-16). Ist die Zahlweise des Kunden nicht darunter, geht es weiter in der Funktion und die WooCommerce Bestellung wird als completed gekennzeichnet (Zeile 19).

Ergänzend möchte ich noch hinzufügen, welche Zahlungarten ich ausgeschlossen habe:

  • Überweisung (bacs)
  • Zahlung per Scheck (cheque)
  • Nachnahme (cod)

Ich hoffe, die paar Zeilen helfen dem ein oder anderen und sparen Mühe und Zeit, die Bestellungen händisch „anfassen“ zu müssen.

15 comments on “WooCommerce – Bestellungen nach PayPal Zahlung automatisch abschließen”

  • Danke Ralf für den Code. Hat mir viel Zeit und Nerven gespart. Soweit ich das jetzt getestet habe, funktioniert das klasse. Danke dir!

    Herzliche Grüße aus Karlsruhe, Winni

  • Hallo zusammen!
    Hatte das gleiche Problem. In den Einstellungen von WooCommerce Germanized war ein Haken bei
    „Stornierungen verhindern – Stornierung von Bestellungen durch den Kunden verhindern.“
    gesetzt (in den Einstellungen „Allgemein“, 6. Zeile).
    Das war also der Haken, jetzt funktioniert alles. Danke euch allen, vor allem an Ralf für den Code!

  • Hallo Ralf,
    zunächst war alles super und ich habe mich sehr über diesen Code gefeut. Allerdings schließe ich mich jetzt leider Karsten an. Auch bei mir ist es so, dass wenn der Zahlungsvorgang von PayPal abgebrochen wurde, der Kunde die E-Mail inklusive Download-Link trotzdem erhält, obwohl er nicht gezahlt hat. Ich habe WooCommerce Germanized installiert. Könnte es eventuell auch daran liegen?

    Viele Grüße
    Sandra

    • Hallo Sandra,

      kann ich mir ohne weitere Infos nicht erklären. Denn der Code wird nur aufgerufen, wenn die Danke-Seite, also die Bestellbestätigungs-Seite von WooCommerce angezeigt wird. Und das ist dann das Signal, dass die Bestellung erfolgreich abgeschlossen wurde. Ansonsten wird diese Seite nicht angezeigt.

      Es kann natürlich sein, dass hier ein anderes Plugin die Steuerung übernimmt. Da müsstest du mal z. B. Germanized abschalten und prüfen, ob der Fehler weiterhin auftritt.

      Melde dich bitte unbedingt noch mal, auch wenn hier ein Plugin dazwischen funkt. Ist ja auch für die anderen interessant 😉

      Grüße
      Ralf

      • Hallo Ralf,

        vielen Dank für deine Rückmeldung. Ich habe WooCommerce Germanized mal deaktviert und siehe da, dieses Plugin war die Ursache für die fehlerhafte Verarbeitung beim Zahlungsabbruch von PayPal. Leider benötigen wir aber zwingend dieses Plugin. Aktuell können wir deswegen leider nur manuell, bezahlte Bestellungen auf den Status „fertiggestellt“ markieren. Das ist ziemlich blöd. Ich bin mir nicht mal sicher ob das Problem jetzt erst nach dem Update des Plugins aufgetreten ist. Wir hatten rund 83 Bestellungen auf „in Bearbeitung“. Irgendwer hätte sich doch gemeldet, wenn er die Datei nach Zahlungseingang nicht downloaden hätte können. Deshalb gehe ich davon aus, dass in unserem Fall das Update die Ursache sein könnte.

        Leider fehlen mir die Programmierkenntnisse, deinen Code so umzuschreiben, dass er auch mit WooCommerce Germanized funktioniert. 🙁

        Hast du eine Idee?

        Viele Grüße
        Sandra

  • Ich habe den Code Kopiert und einfach ganz unten in die Theme functions kopiert dann hat die Website nicht mehr funktioniert Weiß jemand woran das liegen kann?

    Gruß Daniel

  • Hi, der Tipp ist interessant, aber hat eine Lücke: Wenn ich mich in Paypal einlogge und den Vorgang dann abbreche, wird die Email mit dem Downloadlink trotzdem rausgesendet 🙁

    Ich habe im Moment auch das Problem, dass die erfolgte Zahlung von paypal nicht an WooCommerce übertragen wird. Ich muss es immer manuell machen und verstehe nicht, woran es liegen kann.
    Dachte, dein Ansatz wäre eine Lösung, aber das ist nicht gut so. Wenn einer selbst aus versehen den Vorgang abbricht, freut er sich über kostenlose Ware

    • Hallo Karsten,

      kann ich so nicht bestätigen. Wenn ich mich bei PayPal einlogge und dann die Bestellung abbreche, wird diese als storniert gekennzeichnet. Wenn dies nicht so wäre, liegt erst einmal ein Problem bei WooCommerce vor. Denn WooCommerce schickt die Mail mit dem DL-Link nur für erledigte Bestellungen raus und das wäre falsch aus WooCommerce Sicht. Der Code wird nur ausgeführt, wenn die „Thank you“ Seite angezeigt wird. Und diese erscheint nur, wenn eine Bestellung aus WooCommerce Sicht erfolgreich war. Oder verstehe ich da was falsch?

      Grüße Ralf

  • Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.