Fixed: the Wishlist tab in My Account loads the wishlist styles and script, so product images show as thumbnails instead of full size and Move to cart and Remove work without a page reload, the same as on the wishlist page.
Read full notes1 change
Fixed the Wishlist tab in My Account loads the wishlist styles and script, so product images show as thumbnails instead of full size and Move to cart and Remove work without a page reload, the same as on the wishlist page.
New: WooCommerce Optimizer module. Stops WooCommerce prefetching about 50 Cart and Checkout block scripts on every page once the cart has items, defers WooCommerce scripts outside cart and checkout, and removes the WooCommerce generator tag. Optional: load WooCommerce scripts and styles only on store pages, control cart fragments, drop the password strength meter or order attribution, hide marketplace suggestions, inbox notes, dashboard widgets and connect notices, and shorten scheduled-action logs and guest cart sessions.
Read full notes9 changes
New WooCommerce Optimizer module. Stops WooCommerce prefetching about 50 Cart and Checkout block scripts on every page once the cart has items, defers WooCommerce scripts outside cart and checkout, and removes the WooCommerce generator tag. Optional: load WooCommerce scripts and styles only on store pages, control cart fragments, drop the password strength meter or order attribution, hide marketplace suggestions, inbox notes, dashboard widgets and connect notices, and shorten scheduled-action logs and guest cart sessions.
New Stackless serves minified copies of all its CSS and JavaScript (turn on SCRIPT_DEBUG for the readable files), and its storefront scripts load with defer. Payment and Cart/Checkout block scripts keep their timing.
New add-ons of type Short text and Long text take a character limit. It is enforced in the browser and on the server.
New order bump headlines and descriptions accept {price}, {regular_price} and {discount}, shown in the shopper's currency.
Fixed with Multi-Currency Checkout, percentage and fixed-discount order bumps start from the offer's price-book price in that currency, so "40% off" is 40% off the price shoppers see. The bump card and the cart line show the same amounts.
Fixed with Multi-Currency Checkout in a currency without decimals (INR, JPY), add-on charges, checkout field fees and order bump prices are no longer rounded to whole base-currency units before conversion ($11.40 became $11).
Fixed Hide Price Until Login no longer puts its sign-in link inside product card links in shop grids, related products and Store API responses (invalid nested links that broke card layouts on some themes). The link stays on the product's own page.
Fixed add-on text from the classic product form is cleaned of HTML before it is stored, the same as Store API input.
Fixed order bumps, the checkout trust block and the checkout layout still appear when the checkout opens in a background tab.
Requires FluentCart. Payment Gateways, Extra Enhancements and the other store modules require FluentCart 1.6.4 or later. Polar needs a Polar organization access token and webhook secret.
Read full notes17 changes
New Payment Gateways module, starting with Polar
Polar appears in FluentCart → Settings → Payments beside Stripe and PayPal, with FluentCart's own activation switch, checkout label and ordering.
Buyers pay on Polar's secure checkout. Polar is the merchant of record and handles sales tax and VAT. Test mode uses the Polar sandbox.
Payments are confirmed when the buyer returns and again by webhook, so orders are marked paid even if the buyer closes the tab.
Subscriptions (daily to yearly) become Polar subscriptions. Free trials follow FluentCart's trial days, renewals become paid renewal orders, and cancellations work both ways.
Full and partial refunds from FluentCart go to Polar, and refunds made in Polar show up on the order.
Works with Multi-Currency Checkout: buyers pay in their own currency, and the price Polar needs in your default currency is added automatically.
New Extra Enhancements module (each part has its own switch)
Payment failure emails for PayPal, Stripe, Razorpay and Polar. One email per failed order or service error, at most every 30 minutes, with no card details or keys.
Hide the Payment section when Polar is the only way to pay.
Per-product checkout options: choose which payment methods may sell a product, and a page on your site or anywhere else to send buyers to after they pay.
Coupon links: add ?coupon=CODE to any store link.
Internal and test emails: no WordPress account and no integrations for listed addresses or domains.
Spam and fraud guard: blocks throwaway email addresses and limits order attempts per hour to stop card testing.
Improved
Field visibility for digital-only orders now sits on FluentCart's own Checkout Fields screen. Consents, wording and the trust block stay under Checkout enhancements.
Receipt pages reached after paying show amounts in the order's own currency.
Requires WordPress 6.6+, WooCommerce 9.9+ (tested with 11.2) and PHP 7.4+.
New stackless_invoice_schedule() starts or replaces an invoice's recurring schedule from code. Invalid dates come back as a WP_Error with status 400 instead of a fatal error.
Fixed a recurring schedule whose first invoice date is today or earlier is reported as "Choose a first invoice date after today." everywhere, checked before anything else about the invoice.
Fixed on block themes such as Purple, shop and product collection cards show the Sold Count and Stock Urgency badges once instead of twice.
Fixed order bump savings read "Save $20.00" instead of showing the currency symbol as code ($) on the Checkout block.
Fixed the Request a quote button on product pages uses the theme's button style on block themes.
Fixed with Multi-Currency Checkout, products with add-ons keep their price-book price in other currencies; only the add-on charge is converted.
Fixed a PHP 8.5 deprecation notice from product add-ons in the cart.
Requires WordPress 6.6+, WooCommerce 9.9+ (tested with 11.2) and PHP 7.4+.
New every module links to its lesson in the Stackless for WooCommerce Training course: a Docs link on each Dashboard card, a setup link at the top of each module's settings, a Docs link in the Stackless header, on the Plugins screen, on the Subscriptions, Licenses, Invoices, Order bumps, Quote requests, Delivery slots, Stock alerts and Checkout fields screens, and inside the product editor panels.
Improved the license client sends every request as a POST, so license keys no longer appear in URLs or your store's access logs. Copy the client file again to get this.
Improved the license client's text can be translated: pass a 'strings' array with your own text domain.
Improved the license update check now answers with a code that says why a site can't download an update (site_not_active, license_expired, license_revoked or license_inactive) instead of "valid".
Fixed the License keys email template is overridden from yourtheme/stackless/ like every other Stackless template. Existing copies in yourtheme/woocommerce/ keep working.
Fixed the license reminder no longer shows on the Stackless License screen itself.
Requires WordPress 6.6+, WooCommerce 9.9+ (tested with 11.2) and PHP 7.4+.
Read full notes4 changes
New the license client you ship inside your products now updates themes as well as plugins. Pass 'theme' (the theme folder name) instead of 'plugin_file', and updates appear in Dashboard → Updates and Appearance → Themes. Copy the client file again from templates/software_licensing/client.
Fixed "View details" for licensed plugins shows the product description again, next to the changelog.
Fixed the license info route only includes a download link for an active license on an activated site, matching the update check.
Fixed settings and email descriptions point to the right Stackless menus for checkout fields, delivery slots, order bumps, invoices, quotes and subscriptions.
Requires WordPress 6.6+, WooCommerce 9.9+ (tested with 11.2) and PHP 7.4+.
Read full notes5 changes
Fixed on block themes such as Twenty Twenty-Five, My Account, wishlist, saved cart and back-in-stock buttons now use the theme's button style instead of small browser buttons.
Fixed the product add-ons dropdown uses the theme's font and field size.
Fixed order bumps and the trust block match the size of the Checkout block's own text.
Improved subscription and license screens keep one main button; Cancel and Deactivate are quieter text actions, and buttons in order tables no longer overflow their rows.
Improved order bumps use a thin outline, and invoice and proposal pages drop the heavy accent strip and shadow.
Requires WordPress 6.6+, WooCommerce 9.9+ (tested with 11.2) and PHP 7.4+.
Read full notes9 changes
Initial release with 30 modules.
Subscriptions with mixed carts, automatic and manual renewals, failed-payment retries, plan switching with proration, recurring coupons, customer portal, emails and admin screens.
Built-in Stripe, PayPal and Polar gateways with saved payment methods, subscription renewals, refunds and signed webhooks.
Software licensing with activation limits, a license API and an update server; page access for buyers and subscribers.
Multi-currency checkout with price books, live or manual rates, currency-aware gateways and a storefront currency selector.
Custom invoices with recurring billing, deposits and reminders; quote requests with online proposals.
Checkout enhancements, five checkout layouts, order bumps and buy links.
Catalog and store tools: free price text, sold count, stock urgency, quantity limits, hide price until login, add to cart text, external product extras, product details, wishlist, back-in-stock alerts, add-ons and checkout fields, delivery slots, saved carts and service products.
Stackless admin menu with a module dashboard, grouped settings and a license page.