Troubleshooting

June 5, 2026

This article covers the most common issues with Super Speedy AJAX Prices and how to fix them.

Prices on a draft, private, or scheduled product are not loading via AJAX

This is expected behaviour. Super Speedy AJAX Prices only “ajaxifies” products whose status is Published. Draft, Pending Review, Private, and Scheduled (future-dated) products are deliberately left alone:

  • On the page, their price is rendered normally by WooCommerce — it is not replaced with an AJAX placeholder.
  • The public AJAX endpoint (get_wc_prices) will not return price or stock data for them either.

So when you preview an unpublished product as an administrator, you still see the correct price — it just won’t be swapped in via AJAX. As soon as the product is published, AJAX pricing applies automatically.

Why it works this way. The AJAX endpoint is public (it has to be, so it can run on fully-cached pages for logged-out visitors). If it returned data for unpublished products, anyone could enumerate product IDs and read the prices and stock levels of products you haven’t launched yet — for example an upcoming product, or an embargoed sale price. Gating on Published status closes that information-disclosure gap. The same gate is applied in two places (when the price placeholder is inserted, and again inside the AJAX handler) so the two halves can never disagree, and so admins can always preview real prices on unpublished products.

If you genuinely need AJAX pricing on a product, make sure it is Published (not Draft/Private/Scheduled).

Prices show “cached” values briefly before updating

This is by design and is what makes the plugin compatible with full-page caching. The cached page shows the price that was rendered when the page was cached; a fraction of a second later the AJAX request replaces it with the price calculated for the current visitor (their geolocation, tax location, dynamic pricing, etc.). The cached price is kept visible while the request is in flight specifically to avoid layout shift.

If prices never update from the cached value:

Check your browser console for JavaScript errors. A theme or another plugin throwing a JS error before our script runs will stop the AJAX request firing.

Check the AJAX request is not being cached. Configure your caching/CDN layer to not cache admin-ajax.php requests. If the get_wc_prices response is cached, every visitor receives the same prices.

Check the product is published (see the section above).

Only some products on an archive page update

The plugin caps how many products are refreshed in a single AJAX request (default 200) to stop a single request from forcing thousands of product loads. On a normal shop or category page you will never hit this limit. If you run unusually large grids (e.g. a single page showing more than 200 products) and need a higher ceiling, a developer can raise it with the ssap_max_products_per_request filter — see the Developer Reference KB article.

Stock / Add to Cart buttons are not refreshing

Check the setting is enabled. Stock refresh is opt-in: go to Super Speedy > AJAX Prices and tick Refresh stock via AJAX.

Check the same exclusions. Stock refresh follows the same rules as prices — it is skipped for logged-in users and when the cart has items if you have enabled those options, and it only applies to Published products.

Prices are wrong for tax-exempt / VAT-exempt countries

If your store is configured with “I will enter prices inclusive of tax” and you sell into regions with no VAT, enable Fix prices for VAT-exempt locations under Super Speedy > AJAX Prices. This strips the embedded base-country VAT from variation prices when the visitor’s resolved location has no matching tax rates.

×
1/1