Available for projects & agency overflow · Quick reply, from the person who does the work

Payment problem on your WooCommerce shop

A WooCommerce order stuck as "payment pending" even though the customer was actually charged, or a missing payment method at checkout: these blockers cost sales without necessarily generating a visible complaint.

Describe my issue Send a message

How WooCommerce confirms a payment

WooCommerce delegates payment confirmation to a webhook sent by the gateway (Stripe, PayPal, etc.) to a URL like /wc-api/gateway_name/. When the bank confirms the payment but the order stays "pending", the cause is almost always that this webhook never reaches the site: an application firewall at the host, a security plugin blocking external requests, or an invalid SSL certificate causing the server-side call to fail.

The woocommerce_payment_complete hook then triggers the stock update and confirmation emails. If another plugin hooks into the same point and throws a PHP error, the chain stops dead: the payment went through, but the order stays stuck as if nothing happened.

Another common case: a gateway plugin update changes the API version used without the keys or mode (test/live) being rechecked, silently switching the shop into test mode while customers think they’re paying for real.

What brings me onto this kind of case

  • Order stuck as "payment pending" even though the customer was charged
  • A payment method (card, PayPal, bank transfer) missing at checkout
  • Error shown after returning from the bank following 3D Secure authentication
  • Payment works in test mode but not under real conditions
  • Cart emptied or a session error right before final checkout

How I diagnose

  1. Reproducing the journey

    I place a test order under the same conditions as the blocked customer, to observe the actual behaviour rather than guess.

  2. Checking the mode and keys

    I check that the gateway is properly in live mode with the correct API keys, not left in test mode after an update.

  3. Checking the webhooks

    I verify the gateway’s notifications reach the site, checking the WooCommerce logs and the payment provider’s dashboard.

  4. Looking for a plugin conflict

    I temporarily disable recently installed plugins that could interfere with the payment confirmation hook.

Worth reading next

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

passerelle
etape
commandes
changement (facultatif)
message (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Will the customer be charged twice if I reprocess their order?
No, if the payment has already been accepted by the bank it won’t be taken again. The work involves matching the existing transaction to the stuck order, not restarting a payment.
Do I lose the order if it stays stuck for a long time?
No, the order stays recorded in WooCommerce even while pending. The risk is more that the associated stock stays reserved, or that the customer, seeing no confirmation, orders elsewhere.
What access do I need to give you?
WordPress admin access, FTP or SSH access, and if possible access to your payment provider’s dashboard to check the notifications sent.
How long does it take to fix a payment blockage?
A forgotten test mode or an API key issue is fixed in minutes. A webhook blocked by the server can need coordination with the host, so sometimes longer.
Do I need to switch payment plugins?
Rarely as a first move. The cause is most often a configuration or network block, not the plugin itself. A switch is only recommended if the gateway is genuinely abandoned by its publisher.