Features

Compatibility & Integrations

Published · Last updated

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

TypeSupportedNotes
Simple productsYesCore case.
Variable productsYesPlaceholder gets an extra ajax-price-variable class; price refreshes again on found_variation when a variation is selected.
WooCommerce Product BundlesYes (adapter)Adds per-child stock data — see below.
WooCommerce Composite ProductsYes (adapter)Adds per-component/per-option stock data — see below.
External/affiliate, groupedYesTreated 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).

Performance Tip

Infinite scroll stays cheap: each batch of appended products triggers one request for just the new IDs, never a re-fetch of the products already on screen. Scrolling a long category never re-does work it has already done.

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 (see Multi-Currency Setup) 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 ssap_prices_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.

Note

The one hard limit is the woocommerce_get_price_html filter. If a theme, page builder or pricing plugin prints its price markup by hand rather than through that filter, the plugin has nowhere to place a placeholder, so that price renders as normal (from cache) and is never swapped. If a price refuses to update, this is the first thing to check.

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 ssap_prices_updated flow.
  • Headless/REST front ends don’t use the HTML-filter approach — consume the ssap_get_prices action directly instead (see Consuming ssap_get_prices (Headless)).

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

Further reading

support a product type that isn’t covered out of the box.
the stock payload these adapters enrich.
per-plugin setup for the caches and CDNs this is built for.

Comments

▲
▼
1/1