Super Speedy AJAX Prices testing
Testing › Super Speedy AJAX Prices
Last full run: version 1.16.1 · 11 November 2026
Summary
Super Speedy AJAX Prices lets you cache your shop pages while every visitor still sees their own price, stock and basket. This page lists the test suites that make up its release run, what each one proves, and the result of the last full run. Every suite runs on its own WordPress test site with WooCommerce and HPOS order storage switched on.
Most tests work the way a page cache does. They save a copy of a product or shop page, change the real price or stock in WooCommerce, serve the browser the old saved copy, and then check what the visitor actually ends up looking at. The server’s answer is never faked. One suite uses a real page cache, WP Super Cache, instead of a saved copy.
The plugin can fetch prices five ways: normal AJAX, normal REST, Fast AJAX, Fast REST and Ultra AJAX. Several suites run the same check through all five. The last run used WordPress 7.1, WooCommerce 10.5.3 and the Twenty Twenty-Five block theme, with some tests on the classic Twenty Twenty-One and Hestia themes as well.
The release run
| Suite | What it proves | How it runs |
|---|---|---|
| Prices on cached pages | The core promise. A page cached at £10, a price that then drops to £7, and a visitor served the old page who still ends up seeing £7. Every price on a shop page is fetched in one request, not one per product. If the request fails, the cached price comes back instead of an empty space. Prices do not jump the page layout about while they load. Variable products agree with WooCommerce’s own variation prices, including products with more variations than WooCommerce embeds in the page. Display modes (dim then fill, spinner, cached price left visible) behave as described. | Browser |
| Stock and Add to Cart | A product that sells out while its page sits in the cache loses its quantity box and Add to Cart button, and shows a back-in-stock form instead, which then works. A product restocked while cached gets its button back, with the right number in stock. This is checked on a block theme and a classic theme. With stock refresh switched off, nothing about stock changes. | Browser |
| Logged-in customers and member prices | A logged-in customer, or one with items in their basket, never sees a guest’s cached price. A wholesale or member customer sees their discount, a guest does not, and a page first visited by a member never leaks the discount to a guest. Checked with Advanced Dynamic Pricing role rules and with a security token copied into a cached page by a guest. | Browser |
| Other plugins | Products added by Auto Infinite Scroll get their prices, and only the new products are fetched. Two visitors on a page served by WP Super Cache each get their own prices. WooCommerce Product Bundles and Composite Products have tests too. | Browser, with a real page cache |
| Fast Ajax, Ultra Ajax and diagnostics | The Fast and Ultra plugin list shows add-ons as always loaded. Ultra Ajax reports a fault in another plugin as a readable error instead of a broken page. Visitors who arrive through GTranslate’s translation proxy are priced for their own country, not the proxy’s, in all five modes, and a saved billing country always wins. The browser debug trace stays off unless you switch it on. | Browser and direct requests, in all five modes |
| Prices in the cached page | The option to leave prices in the cached page when every visitor pays the same. The price check must give the right answer for five real shops: one price for everyone, tax by the customer’s country, role prices, country prices and a basket discount. Its answer is compared with the prices each kind of visitor really gets. In this mode, stock and basket still update in one request, and switching back restores the normal behaviour. The settings page asks you to confirm before choosing this mode unless a recent check said it is safe. | Browser and the plugin’s AI agent ability |
| All five request modes | The same price and stock changes, for a guest and a logged-in member, through all five modes. Each must return the changed price, hide unpublished and hidden products, send headers that stop a cache storing the answer, respect the limit on products per request, and update the price in a real browser. Also checks the basket on a cached page for two accounts and a second device, stock rules for virtual and downloadable products, the test mode switch, and that turning an add-on off and on keeps its settings. | Browser and direct requests |
| Paid and WordPress.org editions | Each edition is built as its own ZIP and installed on its own fresh site. Prices must load for a guest and a member, and the AI agent abilities must be present. | Browser and WP-CLI, on the built ZIP |
| Variable products from the paid ZIP | The paid ZIP installed on a fresh site, then checked against variable products: the first request carries every variation WooCommerce embeds, a slow out-of-stock then in-stock selection ends on the right price, and switching the plugin off leaves WooCommerce unchanged. | Browser, on the built ZIP |
| Security fixes | Each problem found in our November 2026 security review has a test. Fast Ajax only removes plugins for the price request, never for another request disguised as one. Ultra Ajax only loads plugins that are active. Products that are drafts, private or pending review are never priced, nor are their variations. | Direct requests |
| AI agent controls | The plugin’s AI agent abilities: reading and changing every setting, refusing wrong values, refusing sensitive changes without confirmation, refusing logged-out callers, and the price check. The basket and logged-in switches change what the plugin actually does. | WordPress itself |
| Test mode and the price check | A new install starts in test mode, so your visitors see nothing change until you switch it on. Reactivating or updating never changes the mode you chose. The price check works when a caching add-on has renamed the basket cookie, and removes the test basket it creates. | WP-CLI and direct requests |
Last full run: version 1.16.1
Run on 11 November 2026, with WooCommerce and HPOS.
| Suite | Result |
|---|---|
| Prices on cached pages | 20 of 20 passed |
| Stock and Add to Cart | 17 of 17 passed |
| Logged-in customers and member prices | 13 of 13 passed |
| Other plugins | Auto Infinite Scroll and WP Super Cache: 3 of 3 passed. Product Bundles and Composite Products: 8 tests not run, because those two paid extensions are not installed on our test machine |
| Fast Ajax, Ultra Ajax and diagnostics | 18 of 20 passed. 2 known failures, both GTranslate in normal REST mode (below) |
| Prices in the cached page | 13 of 14 passed. One test ran out of time while loading a page; it passed when its group was re-run (6 of 6) |
| All five request modes | 23 of 25 passed. 2 known failures: Ultra Ajax ignores the limit on products per request (below) |
| Paid and WordPress.org editions | Paid: 2 of 2 passed. WordPress.org: 0 of 2 passed, a known failure in an edition that has not been published (below) |
| Variable products from the paid ZIP | 3 of 4 passed and 1 did not run. The failure was in the test, not the plugin; the test was fixed and the re-run passed 5 of 5 (below) |
| Security fixes | 16 of 16 checks passed |
| AI agent controls | 30 of 30 checks passed |
| Test mode and the price check | Test mode: 6 of 6 passed. Price check with a renamed basket cookie: 5 of 5 passed |
Known failures
GTranslate in normal REST mode (2 tests). When a visitor comes through GTranslate’s translation proxy, these tests check that WooCommerce works out the visitor’s own country, not the proxy’s. In normal REST mode it did find the visitor’s own country, but the test expects the customer’s billing and shipping country to still be blank at that point, and they were already filled in with that country. The same two tests in the other four modes passed, as did the tests for a saved billing country, an invalid header and GTranslate’s older header. These two have failed the same way since at least 29 October 2026 (version 1.15.3). We have not yet established whether the test or the plugin is out of step, so they stay listed as failures until we have.
Ultra Ajax and the products-per-request limit (2 tests). The plugin lets you limit how many products one price request may ask for. Asked for five products with the limit set to three, the other four modes answered three and Ultra Ajax answered all five. Every price and stock value it returned was correct; only the limit is not applied. This is an open bug, first recorded in September 2026.
WordPress.org edition (2 tests). We build a free WordPress.org edition, which has not been published. Its AI agent abilities are missing even after an administrator switches them on. This is an open bug, first recorded in September 2026. In the first run the logged-in member’s price also failed to load in the browser; in a re-run it loaded correctly and only the missing abilities failed, so we cannot yet reproduce the price problem. The paid edition passed both tests.
The test we fixed
Since version 1.15.11 a new install starts in test mode, where ordinary visitors see no change. The variable-product check installs the paid ZIP on a fresh site, so the plugin was correctly in test mode, sent no price request, and the test waited for one that never came. The test now switches the plugin on before it starts, as you would. The plugin code was not changed, so the version is still 1.16.1. After the fix this one suite was re-run on its own and passed 5 of 5.
Not part of this run
- Release package check. Before the WordPress.org edition is released, its ZIP is run through WordPress’s Plugin Check and installed on its own site. That check runs on the release package and was not part of this run.
- Persistent object cache. An older test set-up with a Redis object cache exists and was not part of this run.
- Product Bundles and Composite Products. The 8 tests above need these two paid WooCommerce extensions, which are not installed on our test machine.
What the tests do not cover
- Your page cache. One suite uses WP Super Cache. The rest save and replay pages the way any page cache does, which covers what WP Rocket, LiteSpeed Cache or Cloudflare would serve, but those products themselves are not installed in the tests.
- Your theme. Tests run on Twenty Twenty-Five, with some tests on Twenty Twenty-One and Hestia. Your theme may lay out prices and Add to Cart buttons differently.
- Your server. Tests run on our development machine with one PHP version and one MariaDB version, not every host and database you might use.
- Every other plugin. Plugins we integrate with, such as Advanced Dynamic Pricing, Auto Infinite Scroll and GTranslate, are tested where a suite names them. Other pricing plugins on your site are not.
- Every browser. Browser tests run in Chromium. Safari and Firefox are not part of the run.
Back to all testing · Super Speedy AJAX Prices security review
