Why Won't My WooCommerce Checkout Total Update?
How WooCommerce Recalculates the Total
Rather than reloading the entire page, WooCommerce checkout uses an AJAX request to recalculate and re-render just the order review section whenever something relevant changes. This keeps checkout feeling fast, but it also means a failure in that specific request — rather than a general page error — is what breaks total updates, and that kind of failure is invisible unless you specifically check for it.
Common Causes of Totals Not Updating
- A JavaScript error elsewhere on the page preventing the AJAX call from firing at all, the same class of issue behind several other checkout display bugs.
- A security or firewall plugin blocking the AJAX endpoint (
admin-ajax.phpor the equivalent REST endpoint for block checkout), mistaking legitimate checkout traffic for something suspicious. - A server-side PHP error during the recalculation itself, triggered by a plugin hooking into the cart/checkout totals calculation incorrectly, which the browser would receive as a failed or malformed AJAX response.
- Aggressive caching of the AJAX response, serving a stale total that doesn't reflect the actual current cart state.
How to Diagnose and Fix It
- Open the browser's network tab and trigger the total update (change shipping, apply a coupon) to see whether the AJAX request fires, and what response it gets back.
- Check the browser console for JavaScript errors that might be blocking the request from firing in the first place.
- Temporarily disable security/firewall plugins on staging to test whether one is blocking the AJAX endpoint.
- Check server-side error logs if the AJAX request fires but returns an error response, since that points to a PHP-level issue in the recalculation itself.
Losing sales to a checkout total that won't update correctly? See WooCommerce fixes.