Compatibility & Integrations

June 5, 2026

What Super Speedy AJAX Prices works with, how, and the caveats. Because the real price/stock is computed by WooCommerce inside the live AJAX request, the plugin inherits most of WooCommerce’s own compatibility — anything that filters WooCommerce’s price or stock generation is picked up automatically.

Product types

Type Supported Notes
Simple products Yes Core case.
Variable products Yes Placeholder gets an extra ajax-price-variable class; price refreshes again on found_variation when a variation is selected.
WooCommerce Product Bundles Yes (adapter) Adds per-child stock data — see below.
WooCommerce Composite Products Yes (adapter) Adds per-component/per-option stock data — see below.
External/affiliate, grouped Yes Treated as normal products; price HTML is replaced like any other.

Only published products are ajaxified — draft/private/scheduled products are intentionally left with their server-rendered price (admins previewing them still see the correct price).

WooCommerce Product Bundles

When the Product Bundles plugin is active, an adapter registers automatically and enriches the AJAX stock payload for bundle products with a bundled_items map: per-child product_id, is_in_stock, is_purchasable, is_optional, max_stock, and sold_individually, plus the bundle’s overall stock status/quantity roll-up. This lets a cached page show accurate “X is sold out” state for a bundle’s children without extra requests. The adapter is a no-op if Product Bundles isn’t installed.

WooCommerce Composite Products

Similarly, when Composite Products is active an adapter adds a components map to the payload: per-component title, optional flag, default option, and per-option is_in_stock / is_purchasable state. No-op when the plugin is absent.

Both adapters are built on the public ssap_stock_data_for_product filter, so the same mechanism can support future product types without changing the core. Developers can hook the same filter — see Developer Reference.

Auto Infinite Scroll

First-class integration. When Auto Infinite Scroll appends new product cards, the plugin listens for the auto-infinite-scroll-complete event and refreshes the newly appended products. Crucially it fetches only the new product IDs, not the whole page again (already-loaded placeholders are skipped). This is covered by a dedicated regression test in the suite.

Dynamic pricing plugins

Generally compatible. Because get_price_html() runs inside the live AJAX request for the current visitor, role-based pricing, quantity/discount rules, and similar logic are applied at that moment and reflected in the swapped-in price. Caveat: if a dynamic-pricing plugin renders its own price markup through a completely custom mechanism (not via WooCommerce’s woocommerce_get_price_html filter), the plugin can’t place a placeholder there — test your specific combination.

Multi-currency / currency switchers

Generally compatible for switchers that hook WooCommerce’s pricing and detect currency server-side per request (the AJAX request carries the visitor’s session/cookies, so the switcher resolves the right currency). Caveat: switchers that change currency purely client-side after page load may need their own re-trigger — the plugin re-runs on wc_fragments_refreshed and found_variation, and exposes the wc_ajax_pricing_updated event other scripts can listen to or you can re-init from.

Caching plugins & CDNs

Designed for full-page caches and edge/CDN caching — that’s the core use case. See Caching Plugin Configuration for per-plugin setup (WP Super Cache, W3 Total Cache, LiteSpeed, WP Rocket, Cloudflare/edge).

Themes & page builders

Works with any theme that renders prices through WooCommerce’s standard woocommerce_get_price_html filter — including block themes, classic themes,

/
shortcodes, and builder grids that use WooCommerce product widgets. The script is enqueued site-wide on the front end and no-ops where there are no placeholders, so shortcode and builder pages are covered. Caveat: a theme that bypasses WooCommerce’s price filter entirely and prints prices by hand can’t be ajaxified — those prices simply render normally.

Known limitations

  • Custom price markup that bypasses woocommerce_get_price_html cannot be placeholdered (see dynamic pricing / themes above).
  • Purely client-side currency or pricing changes may need a manual re-init via the wc_ajax_pricing_updated flow.
  • Headless/REST front ends don’t use the HTML-filter approach — consume the get_wc_prices action directly instead (Developer Reference).

If you hit an integration that doesn’t behave, the Troubleshooting article’s diagnostic steps are the place to start.

×
1/1