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 Antworten auf “WooCommerce – Bestellungen nach PayPal Zahlung automatisch abschließen

  1. Winni

    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

  2. Norbert

    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!

  3. Sandra

    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

    1. Ralf Autor

      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

      1. Sandra

        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

        1. Ralf Autor

          Hi Sandra,

          frage doch mal beim Entwickler von WC Germanized an, ob es eine Alternative zu dem in meinem Code Schnipsel verwendeten Hook „woocommerce_thankyou“ gibt. Bin mir fast sicher, dass Germanized hier eigene Hooks eingebunden hat. Alternativ könnte man ggf. die Priorität verändern. Dies könnte aber zu Schwierigkeiten an anderer Stelle führen.

          Grüße
          Ralf

          1. Ralf Autor

            Hallo Sandra,

            freut mich, dass du weiter gekommen bist 🙂

            Auch wenn die Begründung so nicht ganz richtig ist. Der Code prüft zwar die erfolgreiche Zahlung nicht, aber da ist ja noch WooCommerce….

            Grüße
            Ralf

  4. Daniel

    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

  5. David

    Stand ebenfalls vor diesem Problem, Bestellungen wurden nicht abgeschlossen und wurden weiter „in Bearbeitung“ geführt. Ist jetzt abgehackt, danke für diesen Beitrag.

  6. Karsten

    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

    1. Ralf Autor

      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.