WooCommerce Order Not Completing? Fix It Step by Step

php dev.to

WooCommerce orders stuck on "Pending Payment"? Here's what's actually causing it and how to fix it fast.

After 14+ years of WooCommerce development, these are the 7 root causes I see most often:

1. Payment Gateway in Test Mode

Easy to miss after a migration or plugin update. Check WooCommerce → Settings → Payments.

2. Wrong or Missing Webhook URL

For Stripe:

https://yourdomain.com/?wc-api=wc_stripe
Enter fullscreen mode Exit fullscreen mode

If this isn't set correctly in your Stripe dashboard, orders stay Pending forever.

3. Caching on Checkout Pages

Exclude /cart, /checkout, /my-account, /wc-api from every cache layer — plugin, CDN, and server-level.

4. WP Cron Disabled

If DISABLE_WP_CRON is set to true in wp-config.php, payment callbacks never process:

// Remove or set to false in wp-config.php:
define('DISABLE_WP_CRON', false);
Enter fullscreen mode Exit fullscreen mode

5. Plugin Conflict

Disable all plugins except WooCommerce + gateway. Test. Re-enable one by one.

6. Server Firewall Blocking Gateway Callbacks

Especially common on self-managed VPS/dedicated servers. Whitelist payment gateway IP ranges in your firewall.

7. PHP Error During Checkout

Check WooCommerce → Status → Logs. The error is almost always logged there.


Full guide with checklist and quick reference table:
👉 https://amanurrahman.com/blog-post/woocommerce-order-not-completing-fix

Source: dev.to

arrow_back Back to Tutorials