Orders stuck on pending payment

An order sitting at Pending Payment means WooCommerce created it and never heard that the payment succeeded. The money may well have been taken.

Understanding the flow

The customer is sent to the payment provider, pays, and is returned to your site. Separately, the provider sends a message directly to your shop confirming the payment – a webhook or callback. It is that second message, not the customer returning, that moves the order forward. If it does not arrive, the order stays Pending even though payment went through.

The usual causes

  • The webhook is not configured, or points at an old address. This is the most common cause after a site move – the shop works, but the callback still goes to the old domain.
  • The customer closed the browser before being returned, on a gateway that relies on the return rather than a webhook.
  • Something is blocking the callback – a security plugin, a firewall rule, or a maintenance mode page.
  • The shop is in test mode while the gateway is in live mode, or the other way round.

What to do

Check the gateway's own dashboard first – it will tell you whether the payment succeeded and whether it attempted to notify you, often with the response it received. That single check usually identifies the problem.

Then check the webhook address configured at the gateway matches your current site, and look at the WooCommerce logs under Status, Logs, which record gateway activity.

Do not just mark them complete

Confirm at the gateway that each payment actually succeeded before changing an order status by hand. Otherwise you will eventually ship something nobody paid for.

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

WooCommerce on shared hosting: what to expect

WooCommerce runs perfectly well on shared hosting for the great majority of shops. It is,...

Caching WooCommerce correctly, and what must never be cached

Caching is the biggest performance win available to a shop, and the fastest way to break one. The...

Order emails are not arriving

Missing order emails are among the most damaging faults a shop can have, because neither you nor...

Action Scheduler: why background jobs stop running

WooCommerce queues work to run in the background – sending some emails, syncing stock,...

Preparing your shop for a sale or a traffic spike

A planned spike – a sale, a newsletter, a product launch – is the one kind of traffic...