A recent WooCommerce checkout issue on a live WordPress site showcased how seemingly minor caching conflicts can completely block form submissions — even when no payment gateway is involved. In this case study, we’ll walk through how the Freshy team diagnosed and resolved a checkout error that was preventing order submission, even though the site didn’t use standard online payments.
Issue background
A client’s live WooCommerce site suddenly stopped processing checkout submissions. The store does not accept direct online payments due to legal restrictions around its products. Instead, customers submit their order details through WooCommerce’s checkout form, which are then processed manually offline.
However, when attempting to submit the form, users encountered an error that prevented checkout completion. The issue did not occur on the development environment — only the live production server hosted externally.
Initial observations noted that the “Check Payments” method (the default WooCommerce offline payment gateway) was being used, and no third-party payment gateways were active.
Diagnosis
The team immediately began by comparing behavior between the live site and the development environment, where the checkout worked as expected.
A few key findings emerged during troubleshooting:
- The live site used Cloudflare with custom firewall and caching rules.
- The development site — which worked — did not use Cloudflare at all.
- The checkout request relied on the
wc-ajax=update_order_reviewendpoint, a common source of Cloudflare interference.
A review of Cloudflare’s logs confirmed that requests to this AJAX endpoint were being intercepted or cached incorrectly. This is a frequent cause of issues in WooCommerce checkout flows when Cloudflare’s caching or security layers are not properly configured.
To address this, a security rule was added to Cloudflare to skip caching and bypass proxy checks for any request matching:
http.request.uri.query contains "wc-ajax=update_order_review"
This configuration allows WooCommerce’s checkout scripts to communicate with the server without being blocked or modified by Cloudflare’s optimization or security modules.
Resolution steps
- Tested checkout submission on the live site. Verified the error persisted despite no recent code changes.
- Replicated behavior on dev site. Confirmed checkout worked correctly on staging, ruling out theme or plugin conflicts.
- Reviewed Cloudflare firewall and page rules. Found previous “fixes” for unrelated checkout issues that might still affect AJAX calls.
- Temporarily disabled Cloudflare caching rules. When disabled, checkout submission succeeded — confirming Cloudflare was the culprit.
- Implemented refined bypass rule for WooCommerce AJAX calls (
wc-ajax=update_order_review). - Re-tested checkout. Form submissions now worked consistently across browsers and devices.
As an additional safeguard, the team verified that no new plugin updates or PHP configuration changes were made between the time the issue appeared and when it was resolved.
Interestingly, after toggling the problematic setting off and back on — the equivalent of “unplugging and plugging it back in” — the checkout began working again. This hinted that a cached configuration at Cloudflare’s edge may have been serving stale routing data.
Final outcome
After implementing the bypass rule and confirming successful order submissions, checkout functionality was fully restored. The client confirmed that all manual checkout notifications were being received properly again.
This issue illustrates a common pitfall in WooCommerce deployments that use Cloudflare: critical AJAX endpoints can be cached or blocked unless explicitly exempted.
For store owners, ensuring that Cloudflare rules exclude WooCommerce-specific AJAX paths like /wc-ajax/* is essential for smooth checkout operations.
Takeaways
- Always exclude WooCommerce AJAX endpoints from caching in Cloudflare.
- If checkout breaks suddenly, test on staging or disable caching temporarily to isolate the issue.
- Simple toggles or re-saves of Cloudflare rules can clear edge-level misconfigurations.
- Keep your caching configuration documented and verified after any site update or migration.
If you’re experiencing checkout errors or other conflicts between WooCommerce and Cloudflare, Freshy’s WordPress support team can help diagnose and resolve them quickly. Contact Freshy to get expert assistance with your WooCommerce setup, caching configuration, and performance optimization.