Core Changelog for Super Speedy Ajax Prices

Contributors: dhilditch
Donate link: https://www.superspeedyplugins.com/
Tags: ajax, pricing, woocommerce, caching, speed
Requires at least: 5.0
Tested up to: 6.7
Stable tag: 1.3
Requires PHP: 7.0 License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A WordPress plugin that enables AJAX-based pricing for WooCommerce, allowing you to use full page caching while still displaying accurate, personalised pricing to each visitor.

Description

A WordPress plugin that enables AJAX-based pricing for WooCommerce, allowing you to use full page caching while still displaying accurate, personalised pricing to each visitor.

Works seamlessly with popular caching plugins by replacing price display with placeholders on the cached page, then batch-fetching real-time pricing via a single AJAX request after page load. Leverages WooCommerce's built-in geolocation and pricing rules, and supports simple and variable products.

Frequently Asked Questions

Does this work with full page caching?

Yes, that is the primary use case. Configure your caching plugin to cache WooCommerce product and shop pages, and this plugin will load accurate prices via AJAX after the cached page loads.

Does it work with variable products?

Yes, both simple and variable products are supported.

Changelog

1.3 (3rd June 2026)

  • Added WooCommerce Product Bundles and Composite Products support. When either of those plugins is active, the AJAX stock-refresh response now carries per-child / per-component availability for those product types — bundles include a bundled_items map (per child: in-stock, purchasable, optional, max stock) plus the bundle's overall stock roll-up, and composites include a components map (per component: title, optional flag, default option, and per-option in-stock/purchasable state). This lets fully-cached archive and product pages show accurate per-part availability. Each adapter self-registers only when its parent plugin is present (and is a harmless no-op otherwise), and the data is included only when the "Refresh stock via AJAX" option is enabled. Verified by new end-to-end tests for both product types.
  • Security hardening: the AJAX price/stock endpoint now only ever returns data for Published products. Draft, pending, private, and scheduled products are no longer turned into AJAX placeholders and are skipped by the handler, so unpublished prices and stock levels can no longer be enumerated by unauthenticated visitors. Admins previewing an unpublished product still see the correct price — it simply isn't refreshed via AJAX until the product is published.
  • Capped the number of products processed per AJAX request (default 200) to prevent a single request from forcing thousands of product loads. The cap is adjustable via the new ssap_max_products_per_request filter — see the Developer Reference KB article.
  • Hardened request handling so a malformed (non-array) product list can no longer trigger a PHP error; incoming IDs are now de-duplicated and zero-filtered before processing.
  • Added .kb troubleshooting and developer-reference guides.

1.2 (27th May 2026)

  • Updated the Super Speedy Settings page: added a "Recheck Licenses" button above the licence table so customers have a clear way to refresh licence status after a renewal or upgrade without scrolling down to the licence-key field. The button is disabled until a licence key is entered/saved and re-enables as you type.
  • The Recheck flow now also force-bypasses the auth-server's own 1-hour licence cache (via a force=1 flag on the wpiapi/check_product_key call), so renewals/upgrades that completed less than an hour before a recheck no longer show as expired/exceeded. Normal admin page loads continue to use both caches as before — only an explicit Recheck click bypasses them. (Lives in the super-speedy-settings submodule, so the change propagates to every Super Speedy plugin.)
  • Added a bunch of playright tests to check for regressions in future deployments

1.1.0 (20th May 2026)

  • Added optional AJAX stock refresh — refreshes WooCommerce stock availability text and loop Add to Cart buttons via the same batched request as prices, so product/archive pages can stay fully cached while showing live stock state per visitor. Off by default.
  • Fixed compatibility with Auto Infinite Scroll — newly-appended product cards now have their prices (and stock, when enabled) refreshed via a new listener on the auto-infinite-scroll-complete event. Re-init only fetches newly-appended products, not the whole page.

1.0.8 (4th March 2026)

  • Skip VAT-exempt price filter for variable products with a single visible variation — WooCommerce 10.4+ handles the tax adjustment natively, and running the filter as well stripped the base tax twice

1.0.7 (26th February 2026)

  • Added settings option to enable VAT-exempt price fix (disabled by default)
  • VAT-exempt variation price logic now only runs when explicitly enabled in settings

1.0.6 (26th February 2026)

  • Added super-speedy-settings integration for licence management and auto-updates
  • Moved settings page under Super Speedy top-level menu

1.0.5 (26th February 2026)

  • Added admin settings page
  • Added auto-update support

1.0.4 (26th February 2026)

  • Added VAT exempt logic for price determination to improve pricing for large EU stores who sell outside EU
  • Fixed detection of when a user is truly tax exempt

1.0.3 (25th February 2026)

  • Reworked variation price override to correctly handle tax-exempt locations

1.0.2 (23rd February 2026)

  • Added user context to variation prices cache hash to fix variation pricing for tax-exempt locations

1.0.1 (25th April 2025)

  • Added option to disable AJAX pricing when cart has items or user is logged in

1.0.0 (25th April 2025)

  • Initial release
×
1/1