Back to blog
WooCommerce Payments

How to Fix WooCommerce Orders Stuck in Pending Payment

A practical checklist for WooCommerce stores where orders stay unpaid or never move to processing after checkout.

Quick answer

WooCommerce orders usually stay in Pending payment when payment confirmation does not reach the store, the gateway is misconfigured, a webhook fails, manual capture is required, or a plugin/theme conflict interrupts checkout.

What Pending Payment Means

Pending payment means WooCommerce received the order but has not confirmed payment. That can be normal for manual methods such as bank transfer, but it is a problem when card, wallet, or gateway payments should update automatically.

Treat the order as unresolved until you compare WooCommerce, the payment gateway dashboard, and the customer experience. Do not simply retry charges or mark the order paid without confirming what happened.

Check Order Notes First

  1. Open the order in WooCommerce and read the order notes in timestamp order.
  2. Look for gateway messages, decline reasons, authentication failures, timeout messages, or status changes.
  3. If there are no payment notes, verify whether the gateway successfully communicated with the site.
  4. Compare the WooCommerce order timestamp with the gateway dashboard transaction timestamp.

Review Gateway Logs and Webhooks

Enable gateway logging only while troubleshooting, then inspect WooCommerce Status > Logs for the affected gateway and date. Logs often reveal whether the payment started, whether the callback arrived, and whether a response failed.

  • Confirm webhook or notification URLs in the gateway dashboard.
  • Check whether staging or development sites are receiving live notifications.
  • Look for blocked REST responses, firewall rules, or security plugins interfering with callbacks.
  • Run a small test transaction in sandbox or staging if the gateway supports it.

Rule Out Plugin and Theme Conflicts

Payment issues can come from checkout JavaScript, caching, security tools, currency switchers, dynamic pricing, or theme templates. Reproduce the issue in a staging site, then test with only WooCommerce, the active payment gateway, and a default theme.

If the problem disappears, reactivate extensions one at a time and place a test order after each change. Keep notes so you can connect the failure to a specific component instead of guessing.

How WPlura Helps

This is the kind of revenue-risk pattern WPlura Revenue Shield is designed to help store owners review. The free plugin provides local WooCommerce revenue-risk scans, failed and pending order signal review, recovery opportunity notes, reports, CSV exports, and privacy-safe retention controls without sending recovery messages.

Relevant WPlura tool

Web Plura Revenue Shield

Free local WooCommerce revenue-risk scans, failed and pending order signal review, reports, recovery opportunity notes, CSV exports, and local retention controls.

Symptoms to Confirm

For SEO and for real readers, this guide treats "woocommerce orders stuck pending payment" as a problem-solving workflow rather than a one-click trick. The phrase may describe a login issue, admin screen failure, editor problem, server rule, cache problem, file permission issue, update conflict, or security signal. The best fix depends on evidence. Start by confirming when the issue began, which users can reproduce it, which URL or admin action fails, whether the browser shows a network or JavaScript error, and whether WordPress or server logs show a matching warning. That order keeps the article useful for site owners, developers, agencies, and hosting support teams because everyone can see what has already been checked.

  • The login or dashboard screen reloads, hangs, redirects, or shows a partial interface. For this article, use that symptom to confirm the scope of "woocommerce orders stuck pending payment" before you change plugins, themes, .htaccess, wp-config.php, cache, or hosting settings.
  • Only logged-in users see the issue, while visitors may see normal pages. For this article, use that symptom to confirm the scope of "woocommerce orders stuck pending payment" before you change plugins, themes, .htaccess, wp-config.php, cache, or hosting settings.
  • Browser developer tools show blocked requests, failed scripts, stale cookies, or REST/AJAX errors. For this article, use that symptom to confirm the scope of "woocommerce orders stuck pending payment" before you change plugins, themes, .htaccess, wp-config.php, cache, or hosting settings.
  • The issue starts after a URL, SSL, cache, role, plugin, theme, or hosting change. For this article, use that symptom to confirm the scope of "woocommerce orders stuck pending payment" before you change plugins, themes, .htaccess, wp-config.php, cache, or hosting settings.

Likely Root Causes

Do not treat how to fix woocommerce orders stuck in pending payment as proof that WordPress core is broken. In most real support cases, the same visible symptom can be caused by several layers. A plugin can trigger a fatal error, a theme can break the editor, a cache rule can serve stale admin-facing HTML, a security rule can block admin-ajax.php, a host can change PHP behavior, or a small .htaccess edit can route working content to the wrong place.

  • Conflicting home and siteurl values, cookie problems, duplicate redirects, cached logged-in pages, blocked admin endpoints, capability changes, or plugin/theme JavaScript errors. The important detail is not only the technical cause; it is whether the cause is owned by WordPress settings, a plugin, a theme, hosting, DNS, SSL, cache, or a security layer.
  • A recent change log often explains the problem faster than a broad plugin hunt. Check the last update, site move, PHP version change, security rule, theme edit, cache setting, DNS change, or user-role change before you start replacing files.
  • When the symptom affects wp-admin, test both logged-in and logged-out behavior. Many admin issues depend on cookies, nonces, capabilities, REST API access, admin-ajax.php, or cache rules that public visitors never touch.
  • When the symptom affects the public site, check whether wp-admin still works. If wp-admin works, preserve access and gather evidence from Site Health, logs, and plugin screens before making a risky live change.

How to Use Web Plura Diagnostics

Web Plura Diagnostics is relevant here because the plugin workflow stays inside wp-admin and focuses on local evidence. Use it after the first manual checks, not instead of them. The best habit is to run the plugin, read the finding context, decide who owns the next action, make one change, and rerun or document the result.

  1. Install the free Web Plura Diagnostics plugin from WordPress.org, activate it, and open Web Plura Diagnostics in wp-admin.
  2. Run Diagnostics before changing the site again so you have one local view of Site Health-style signals, cache hints, PHP limits, REST/front-end response, cron pressure, update risk, and email readiness.
  3. Start with the Fix First items instead of scanning every plugin screen manually. Use the problem, impact, owner, and next-action fields to decide whether the next step belongs to the site admin, developer, host, or DNS/email provider.
  4. Use the support-safe snapshot, JSON export, or CSV export when you need to send a concise problem summary to a developer or hosting support without copying private logs into email.
  5. After the manual fix, rerun the same diagnostic check and keep the before/after result with your maintenance notes.
  6. Use the WordPress.org plugin page as the installation reference: https://wordpress.org/plugins/web-plura-diagnostics/
  7. Use the WPlura product page for product details and support context: https://wplura.com/products/web-plura-diagnostics
  8. Keep the final decision human-owned. Web Plura can help surface local findings and organize next actions, but it should not replace backups, staging, hosting support, or developer review when the issue is business-critical.

The free WordPress.org plugin is the primary CTA for this workflow: https://wordpress.org/plugins/web-plura-diagnostics/. For broader product information, use https://wplura.com/. Keep product usage practical: install, activate, run the local check, review findings, export or document the result, then continue with the manual fix described in this guide.

Benefits for WordPress Admins

The real benefit for a WordPress admin is not another dashboard for its own sake. It is having a repeatable way to move from a vague complaint to a documented next step. That matters for how to fix woocommerce orders stuck in pending payment because the visible symptom can be urgent, but the wrong fix can make recovery slower.

  • It reduces guesswork by grouping scattered wp-admin symptoms into prioritized local findings.
  • It is useful before update windows, PHP changes, client handoffs, and support calls because the report explains what is wrong and why it matters.
  • It does not require an external account for the core workflow and does not add frontend scripts by default.
  • It gives non-developer admins a clearer path while still giving developers exportable evidence.
  • For a WP admin, the practical benefit is a smaller troubleshooting loop: observe the symptom, collect local signals, choose the likely owner, make one reversible change, and verify the result.
  • For an agency or support team, the benefit is a clearer handoff. The same issue can be described in terms of problem, impact, owner, urgency, and next action rather than a long message full of screenshots.
  • For a site owner, the benefit is confidence without pretending the plugin is magic. The post still explains the manual fix first, and the plugin helps make the investigation easier to repeat.

Verify the Fix and Prevent Repeat Issues

  • Place a test order and confirm WooCommerce, order notes, logs, and gateway records agree.
  • Confirm stock behavior for paid, failed, and cancelled orders.
  • Keep a short incident note with the gateway, plugin version, theme version, and fix applied.
  • Review pending orders weekly so genuine payment failures do not disappear into normal operations.

References

References

Frequently Asked Questions

Should I manually mark a pending WooCommerce order as paid?

Only after you confirm the payment in the gateway or manual payment records. If the gateway never captured the payment, marking the order paid can create fulfillment and accounting problems.

Can webhooks cause pending payment orders?

Yes. If the payment gateway cannot notify WooCommerce that payment succeeded, the order can remain pending even when the external gateway has a transaction record.

Related guides

Keep troubleshooting

All guides