Sign inBlogAboutSupportContact
WooCommerce

Find out why WooCommerce checkouts are failing before customers tell you

Group failed orders by gateway and by day, surface the error messages gateways leave in order notes, and catch stuck webhook payments. Read-only, so nothing gets changed while you investigate.

4 min read May 2026 detect checkout issues

Checkout failures are silent until they are expensive

WooCommerce does not send you a digest of failed orders. Customers rarely report them either: most people abandon the cart and buy from someone else. By the time you notice a revenue dip in your analytics, dozens of orders may have already failed.

When something does break at checkout, it almost never breaks across every gateway at once. A plugin update breaks one payment method. A gateway credentials rotation breaks another. Without grouping failures by gateway and by day, you are staring at a raw list of failed orders with no obvious signal.

What most people do

Scroll through the orders screen WooCommerce shows failed orders in the same list as everything else. You can filter by status, but you get raw rows with no grouping by gateway, no error message visible, and no trend over time.
Install a reporting plugin Most WooCommerce reporting tools focus on revenue, not failure rates. The ones that do track failures add dashboards you have to check manually and often need a paid tier for gateway-level breakdown.
Wait for the gateway support ticket Contacting gateway support means pulling order IDs, sharing logs, and waiting. By the time you have an answer, you have already lost the sales you could have saved.

A better way: diagnose in seconds, change nothing

TrueCommander's detect checkout issues command scans your failed orders, groups them by payment gateway and by day, and surfaces the internal notes that gateways write when a payment is declined. One command, no dashboard to configure, no plugin to install.

TrueCommander
Checkout diagnosis complete
38 failed orders in the last 7 days
Stripe 31 failureslatest: "3DS verification failed"
PayPal 7 failuresno spike pattern
3 pending orders stuck for over 2 hourswebhook likely missed

Completely read-only. detect checkout issues only reads order data. It does not change order statuses, retry payments, or touch any setting. You get the diagnosis without any risk of touching live orders.

How it works

1
Counts and groups failed orders by gateway and by day It queries wc-failed orders within the lookback window and groups the count by payment method and by calendar day. A spike on one gateway on one day is immediately visible.
2
Surfaces error messages from internal order notes Payment gateways write error messages ("Card declined", "3DS verification failed", "Insufficient funds") into WooCommerce order notes. The command reads the latest note on each of the most recent failures so you see the raw gateway reason, not just a status.
3
Flags stuck webhook payments when you pass -include_pending=true It also scans wc-pending orders older than -pending_stale_hours. Those are almost always payments where the gateway redirect succeeded but the webhook never confirmed. They look paid to the customer but unpaid to WooCommerce.
ParameterWhat it does
-daysAnalyze failed orders from the last N days. Default 7, max 90.
-limitMaximum number of failed orders to scan. Default 200, max 1000. Raise this on high-volume stores.
-include_pendingWhen true, also scans wc-pending orders to flag any that are stuck. Default false.
-pending_stale_hoursHow old a wc-pending order must be before it is flagged as stuck. Default 2, max 720. Raise this for gateways that legitimately take longer to confirm.
Can be used in

Real example

On a Tuesday you notice the previous day's revenue was lower than usual. Nothing looks broken, no one complained, the site is up.

You run tp detect checkout issues -days=3. The output shows 31 failures on Stripe and only 7 on PayPal. The Stripe failures all cluster on Monday, and the latest order note reads "3DS verification failed." The PayPal failures are spread evenly across all three days, which is normal baseline noise for a store that size.

You trace the Stripe spike to a WooCommerce Stripe plugin update deployed Monday morning. The update changed the 3DS flow in a way that broke returning customers on mobile. You roll back the plugin, run the command again, and the failure rate drops back to baseline within the hour. No support ticket, no digging through server logs, no guessing.

Goes further with TrueCommander

Ready?

Stop losing sales to silent checkout failures.

One of 91 commands. All included with every license.

Cookies. The short version.

Essential cookies keep the cart and theme working. Analytics only fire if you say yes. Read our policy.