WooCommerce-Zahlung funktioniert nicht — so findest du die Ursache.
Kunden legen Produkte in den Warenkorb, gehen zur Kasse — und dann hängt die Zahlung. Der PayPal-Button fehlt, Stripe meldet einen Fehler oder die Bestellung bleibt auf „Zahlung ausstehend“, obwohl das Geld angekommen ist. Hier steht, wo die typischen Fehler liegen und in welcher Reihenfolge du sie prüfst.
Die häufigsten Ursachen: Testmodus noch aktiv oder falsche API-Schlüssel, Webhooks kommen nicht an (Bestellung bleibt „ausstehend“), Cache oder Optimierungs-Plugin bricht das Zahlungs-Skript, Plugin-Konflikt im Checkout, Einschränkungen des Anbieters (Land, Währung, Betrag). Zuerst das Protokoll unter WooCommerce → Status → Logs lesen.
Symptom und wahrscheinliche Ursache.
| Symptom | Wahrscheinliche Ursache |
|---|---|
| Zahlungsart erscheint gar nicht in der Kasse | Deaktiviert, Land/Währung nicht unterstützt, Mindest- oder Höchstbetrag, Konto nicht vollständig verbunden |
| Button erscheint, Klick tut nichts | JavaScript-Fehler, Skript durch Cache/Optimierung zerlegt, Konflikt mit anderem Plugin |
| Fehlermeldung nach Klick auf „Bestellen“ | Falsche Schlüssel, Testmodus, Anbieter lehnt ab, Serverfehler — Log prüfen |
| Zahlung erfolgreich, Bestellung bleibt „Zahlung ausstehend“ | Webhook kommt nicht an oder wird blockiert |
| Kunde wird nach Zahlung nicht zurückgeleitet | Falsche Rückgabe-URL, Weiterleitung durch Sicherheits- oder Weiterleitungs-Plugin |
| Nur bei manchen Kunden | 3D-Secure-Abbruch, Browser-Erweiterungen, Land oder Betrag |
| Seit einem Update | Inkompatibilität mit neuer WooCommerce-Version oder dem Block-Checkout |
Erster Schritt: die Protokolle.
Bevor du irgendetwas umstellst: Unter WooCommerce → Status → Logs legen die meisten Zahlungs-Plugins eigene Protokolle an, oft muss das Protokollieren in den Einstellungen der Zahlungsart erst eingeschaltet werden. Dort steht in Klartext, was der Zahlungsanbieter geantwortet hat: ungültiger Schlüssel, abgelehnte Karte, fehlende Berechtigung. Zusätzlich lohnt ein Blick in das Dashboard des Anbieters. PayPal und Stripe zeigen dort jeden Zahlungsversuch und jeden Webhook mit Status. Und im Browser verraten die Entwicklertools unter „Konsole“, ob ein Skript-Fehler den Button blockiert.
Testmodus und Schlüssel.
Der Klassiker nach einem Umzug, einem Relaunch oder einer Staging-Übertragung: Die Zahlungsart steht noch im Test- oder Sandbox-Modus, oder die Live-Schlüssel gehören zu einem anderen Konto. Im Testmodus funktionieren echte Karten nicht, und umgekehrt. Prüfe in den Einstellungen jeder Zahlungsart, ob der Live-Modus aktiv ist und die Verbindung zum richtigen Konto besteht. Bei PayPal und Stripe gibt es dafür einen Verbinden-Button. Ein erneutes Verbinden löst viele Probleme mit abgelaufenen oder falschen Schlüsseln.
Webhooks: „Zahlung ausstehend“.
Viele Zahlungsarten melden den Erfolg nicht direkt beim Zurückleiten, sondern über einen Webhook: Der Anbieter ruft im Hintergrund eine Adresse deines Shops auf und sagt „bezahlt“. Kommt dieser Aufruf nicht an, bleibt die Bestellung auf „Zahlung ausstehend“, obwohl das Geld längst da ist. Typische Gründe:
- Die Webhook-Adresse zeigt noch auf die alte Domain oder die Staging-Kopie.
- Eine Firewall, ein Sicherheits-Plugin oder ein Passwortschutz blockiert den Aufruf.
- Der Webhook-Schlüssel stimmt nicht mehr, etwa nach einem neuen Verbinden.
- Ein PHP-Fehler bricht die Verarbeitung ab — steht dann im Log.
Im Dashboard von PayPal oder Stripe siehst du, ob Webhooks zugestellt wurden und welche Antwort dein Shop gegeben hat. Fehlgeschlagene Zustellungen lassen sich dort nach der Reparatur erneut senden, damit die offenen Bestellungen nachträglich korrekt markiert werden.
Cache und Skript-Optimierung.
Caching- und Optimierungs-Plugins fassen JavaScript zusammen, verzögern es oder laden es erst beim Scrollen. Für Zahlungs-Skripte ist das Gift: Der Button lädt nicht, oder er lädt mit veralteten Daten. Warenkorb, Kasse und „Mein Konto“ dürfen außerdem nie im Seiten-Cache landen. Die großen Cache-Plugins schließen diese Seiten zwar automatisch aus, aber Server-Caches beim Hoster oder ein CDN tun das nicht immer. Zum Testen: Optimierung von JavaScript deaktivieren, Caches leeren, erneut probieren. Liegt es daran, werden die Skripte des Zahlungsanbieters von der Optimierung ausgenommen. Mehr dazu: WooCommerce langsam.
# Header der Kasse abrufen — steht dort ein Cache-Treffer, wird die Kasse zwischengespeichert
curl -sI https://deine-domain.de/kasse/ | grep -iE "cache|age|x-litespeed|cf-cache-status"
# Erwartet: kein "HIT", sondern "MISS", "BYPASS", "DYNAMIC" oder gar keine Cache-HeaderDer Pfad der Kasse heißt in deutschen Shops meist /kasse/ oder /checkout/. Ein HIT auf dieser Seite ist ein Fehler, den der Hoster oder das Cache-Plugin beheben muss.
PayPal im Detail.
- Welches Plugin? Aktuell ist „WooCommerce PayPal Payments“. Das alte „PayPal Standard“ ist veraltet und sollte ersetzt werden. Zwei parallel aktive PayPal-Plugins stören sich gegenseitig.
- Konto vollständig? Ein PayPal-Geschäftskonto muss verifiziert sein, sonst werden bestimmte Zahlungsarten wie Kartenzahlung über PayPal nicht angeboten.
- Buttons fehlen? Oft blockiert ein Skript-Optimierer das PayPal-Skript oder das Land des Kunden unterstützt die angebotene Variante nicht.
- Zahlung abgelehnt? Die genaue Ablehnung steht im PayPal-Konto unter Aktivitäten. Viele Ablehnungen kommen vom Risikosystem von PayPal, nicht vom Shop.
Stripe, Kreditkarte, Apple Pay.
- Kartenfeld leer: Skript blockiert, oft durch Optimierung oder einen Cookie-Banner, der Stripe vor der Zustimmung sperrt. Zahlungs-Skripte sind technisch notwendig und sollten nicht blockiert werden — das ist mit dem Cookie-Banner sauber zu lösen (Cookie-Banner).
- 3D Secure bricht ab: Der Kunde schließt das Bestätigungsfenster oder die Bank-App reagiert nicht. Im Stripe-Dashboard als „unvollständig“ erkennbar.
- Apple Pay und Google Pay fehlen: Die Domain muss bei Stripe registriert sein. Nach einem Domainwechsel ist das oft vergessen.
Klarna und Kauf auf Rechnung.
Klarna, Rechnungskauf und Ratenzahlung sind an Bedingungen geknüpft: Land der Rechnungsadresse, Währung, Mindest- und Höchstbeträge, teils auch die Produktart. Erscheint die Zahlungsart nicht, liegt es meist daran und nicht an einem Fehler. Prüfe die Bedingungen im Händlerkonto und teste mit einer passenden Adresse.
Plugin- und Theme-Konflikte.
Hilft nichts davon, liegt es oft an einem anderen Plugin, das in die Kasse eingreift: Rechtstexte-Plugins, Checkout-Feld-Editoren, Gutschein- oder Versand-Plugins, ein Theme mit eigenen Kassen-Vorlagen. Der sichere Test ist die Fehlerbehebung aus dem Plugin „Health Check & Troubleshooting“: Sie deaktiviert Plugins und Theme nur für dich, Kunden bestellen normal weiter. Dann Plugin für Plugin wieder aktivieren, bis der Fehler auftaucht. Seit dem Umstieg auf den Block-Checkout gilt außerdem: Manche älteren Plugins funktionieren nur mit der klassischen Kasse. Mehr dazu im Ratgeber Checkout funktioniert nicht.
Wenn nichts hilft.
Jede Stunde ohne funktionierende Zahlung kostet Umsatz. Ich finde die Ursache, repariere sie und sorge dafür, dass hängende Bestellungen nachträglich korrekt markiert werden: WooCommerce-Support oder im akuten Fall der Notfall-Support.
Wer hilft.
Ich bin Manuel Killert, WordPress-Entwickler aus Quakenbrück. Seit 2020 baue und betreue ich WordPress-Websites — für Handwerksbetriebe, Industrie, Gastronomie, Start-ups und Vereine —, entwickle eigene Plugins und unterrichte WordPress als Dozent an der KW Design Akademie. Das heißt: Ich kenne die typischen Fehler nicht nur aus Foren, sondern aus eigenen Projekten, und ich kann sie so erklären, dass du sie beim nächsten Mal selbst erkennst. Du erreichst mich direkt, ohne Ticketsystem.
Echte Projekte — live ansehen.
WordPress-Websites, die ich gebaut habe oder laufend betreue.

Markenfest
Stärkerer Online-Shop — Webdesign, Content und individuelle Shop-Funktionen.
Website ansehen ↗
KT Bodenteam
Professioneller Auftritt für einen Bodenleger — Vorher-Nachher-Slider und regionale SEO.
Website ansehen ↗
Potassco Solutions
Klare Website für ein KI-Unternehmen, die komplexe Technologie verständlich macht.
Website ansehen ↗FAQ — WooCommerce-Zahlung funktioniert nicht.
Warum bleibt meine WooCommerce-Bestellung auf „Zahlung ausstehend“?
Meistens kommt der Webhook des Zahlungsanbieters nicht an. Die Webhook-Adresse zeigt dann auf eine alte Domain, wird von einer Firewall blockiert oder der Webhook-Schlüssel stimmt nicht. Im Dashboard von PayPal oder Stripe ist zu sehen, ob die Zustellung fehlgeschlagen ist.
Warum wird der PayPal-Button nicht angezeigt?
Häufige Gründe sind ein Skript-Optimierer, der das PayPal-Skript verzögert oder zusammenfasst, ein nicht vollständig verifiziertes Geschäftskonto, zwei parallel aktive PayPal-Plugins oder ein Land beziehungsweise eine Währung, die die Variante nicht unterstützt.
Wo sehe ich, warum eine Zahlung fehlgeschlagen ist?
Unter WooCommerce, Status, Logs, wenn das Protokollieren in der Zahlungsart aktiviert ist. Zusätzlich im Dashboard des Zahlungsanbieters und in der Browser-Konsole, falls ein Skript-Fehler den Button blockiert.
Kann ein Cookie-Banner Zahlungen blockieren?
Ja, wenn er die Skripte von Stripe oder PayPal bis zur Zustimmung sperrt. Zahlungsskripte sind für die Bestellung technisch notwendig und sollten im Cookie-Banner entsprechend eingeordnet werden.
Warum erscheint Klarna nicht in meiner Kasse?
Klarna ist an Bedingungen wie das Land der Rechnungsadresse, die Währung und Mindest- oder Höchstbeträge gebunden. Erfüllt der Warenkorb sie nicht, wird die Zahlungsart ausgeblendet.
Funktionieren alle Zahlungs-Plugins mit dem neuen Block-Checkout?
Nicht alle. Ältere Plugins unterstützen teilweise nur die klassische Kasse. In diesem Fall hilft ein Update des Plugins, ein Wechsel auf ein aktuelles Plugin oder vorübergehend die Rückkehr zur klassischen Kasse.
Das bin ich – rechts im BildErzähl mir, was nicht funktioniert.
Domain und eine kurze Beschreibung reichen — du bekommst eine ehrliche Einschätzung, was los ist und was die Behebung kostet.
Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de