Skip to content
Gaurav TiwariChangelog

Plugin changelog

GT Extensions for FluentCart

Local pricing, invoices, quotes, checkout designs, and customer tools for FluentCart.

Latest
2.21.1
Releases
53
Updated
November 5, 2026
  1. Stable

    2.21.1

    Yearly subscriptions in the Google product feed no longer carry subscription_cost, which Merchant Center disapproved.

    Read full notes 1 change
    • Fixed Google Product Feed no longer sends subscription_cost for yearly subscriptions. Google accepts that attribute only for phone and telecom contracts, so Merchant Center disapproved yearly software plans and treated them as payment plans limited to one country. Yearly plans are now listed at the price of their first year.
  2. Stable

    2.21.0

    Adds Google Product Feed, a Merchant Center feed for free listings and Shopping ads, with a strikethrough sale price in product structured data.

    Read full notes 5 changes
    • New Google Product Feed builds a Merchant Center feed at /gtfc-feed/google.xml, one item per variation with price, sale price, stock, images, brand, GTIN or MPN, condition and categories. It is rebuilt a few minutes after products change and once a day, and Merchant Center fetches it on a schedule.
    • New The Product feed screen shows the feed URL, build status, Google category mapping per FluentCart category, and every product or option left out with the reason. Exclude or include a product from there.
    • New Items Google doesn't allow are left out: services, external products, hidden or zero prices, payment plans, and subscriptions billed more often than yearly. Ebooks stay in free listings and are kept out of Shopping ads.
    • New When a variation has a compare-at price, the product page's structured data gains it as a strikethrough price, so the page shows the same sale as the feed. Turn this off in the feed settings.
    • New WP-CLI commands wp gtfc feed build, wp gtfc feed status and wp gtfc feed item.
  3. Stable

    2.20.1

    Removes the radio mark from On-page Checkout plan cards and lines up their titles, prices and notes.

    Read full notes 1 change
    • Improved On-page Checkout plan cards no longer show a radio mark. Titles, prices and notes line up on the left, including under long titles, and the selected card shows through its border and tint. Keyboard selection works as before.
  4. Stable

    2.20.0

    Adds Purchase Rules to limit who can buy a product or variation, an option to hide .00 on whole prices, and clearer on and off switches in dark mode.

    Read full notes 3 changes
    • New Purchase Rules limits who can buy a product or variation by WordPress role, FluentCRM tag or WP Fusion tag, and can stop repeat purchases. Rules are checked at add to cart, at instant, modal and on-page checkout, and when the order is placed. Buyers who don't qualify still see the product, with the reason.
    • New Extra Enhancements can hide .00 on whole prices. $49.00 shows as $49, and a price with cents stays exact. Off by default.
    • Fix in dark mode, on and off switches on GT Extensions screens were almost the same grey. They're now easy to tell apart.
  5. Stable

    2.19.1

    Shows short save confirmations as toasts, covers GT Stripe and GT PayPal in payment failure emails and Multi-Currency Checkout, and holds FluentCRM automations and stock-alert confirmations on staging copies.

    Read full notes 6 changes
    • New Short save confirmations on GT Extensions screens show as a toast that hangs from the admin bar, in light and dark mode. Errors and longer messages stay on the page.
    • Improved Payment failure emails watch GT Stripe, GT PayPal and every gateway copy. Stores that saved the list earlier watch the two new gateways until they next save it.
    • Improved Multi-Currency Checkout knows which currencies GT Stripe and GT PayPal take, for them and their copies.
    • Improved The Payment Gateways help covers GT Stripe and GT PayPal, and the gateway, Buy Links, FluentCRM and staging-copy screens link to their new guides.
    • Fixed On a staging, local or moved copy of the store, FluentCRM automations and back-in-stock sign-up confirmations now wait and run once the site is confirmed as the live store, as the 2.18.0 notes described.
    • Fixed Revoke all buy links now stops every link made in the builder, including links without an expiry date while hand-written links are allowed.
  6. Stable

    2.19.0

    Adds Checkout Builder designs and a Bricks element to On-page Checkout, uses the current product in product templates and loops, and adds an option to open the account menu collapsed.

    Read full notes 10 changes
    • New On-page Checkout can carry your Checkout Builder design. Classic, Split, Warm Split, Focused and Review First sit under the plan cards with the colors, width and corner radius from Checkout Builder, and the plan cards take the design's accent. It follows the active design by default; pick another design, or FluentCart's compact form, per block, Bricks element or shortcode (design="warm-split").
    • New An On-page Checkout element for Bricks, with the block's product, plans, design and layout options, plus style controls for the plan cards and the button. In the builder it shows the plans and an outline of the chosen design, and never creates a cart.
    • New On-page Checkout uses the current product when no product is chosen, so one Bricks product template, Bricks query loop, Query Loop block or product description sells each product with its own plans.
    • New In Extra Enhancements: open the account menu collapsed. FluentCart's My Account menu can start as a narrow strip of icons on desktop, and customers can still expand it. Off by default; phones keep FluentCart's own menu.
    • Improved On-page Checkout plan cards have a radio mark, a tinted selected card and a clearer price, an outline of a form shows while the checkout loads, the button layout spans the width on phones, and the block editor previews the plans with an outline of the design.
    • Improved Documentation links throughout the plugin open the guides at gauravtiwari.org/docs, and the Plugins list has Documentation and Changelog links.
    • Fixed On-page Checkout shrank to 300px wide inside Bricks containers and other flex layouts.
    • Fixed On-page Checkout did not load when a theme printed it through wp_kses_post(), as some product templates do, because the plan inputs were stripped.
    • Fixed A theme's fixed bars, such as a mobile bottom menu or a sticky header, no longer show inside the embedded checkout, and a theme's form-label styles no longer wash out the plan cards.
    • Fixed The license screen's links to buy a license pointed to a page that no longer exists.
  7. Stable

    2.18.0

    Adds GT Stripe and GT PayPal with your own keys, saved-card and PayPal renewals, Buy Links, FluentCRM triggers, and a staging guard that stops copies of the store emailing customers or charging cards.

    Read full notes 12 changes
    • New GT Stripe. Take cards, Apple Pay, Google Pay and Link with your own Stripe keys, without FluentCart's Connect relay. Apple Pay, Google Pay and Link buttons also appear on product pages, the cart and the checkout for carts without shipping, and the store's domain is registered for Apple Pay when you save the settings.
    • New GT PayPal. Smart Buttons with Pay Later in FluentCart's checkout with your own PayPal REST app, beside FluentCart's own PayPal. Capture right away, or authorize and capture when the order moves to Processing.
    • New GT Stripe and GT PayPal can be duplicated for a second Stripe or PayPal account, like Polar, GT Paddle and Dodo Payments. Each copy has its own keys, webhook, customers, saved cards or PayPal accounts, payments and refunds. Apple Pay, Google Pay and Link buttons come from one Stripe account per page: GT Stripe first, then its copies, whichever is offered in the shopper's currency.
    • New Every GT gateway has a logo with its name in it on FluentCart's Payments screen and at checkout, and GT Stripe and GT PayPal carry the GTFC badge. FluentCart's own Stripe, PayPal and Paddle are badged "FluentCart" while the GT version is on, so the two are easy to tell apart.
    • New GT Stripe and GT PayPal save the card or PayPal account on a subscription's first payment, including free trials, and FluentCart charges it on each renewal through store-managed billing, without FluentCart Pro. Refunds go back from the order screen, and refunds made at Stripe or PayPal come back into FluentCart.
    • New GT Stripe and GT PayPal create their webhook when you save the settings on a public HTTPS site, and check every delivery. A payment for the wrong amount or currency is held instead of confirmed, and a second PayPal capture is never taken for a paid order.
    • New A staging, local or migrated copy of the store no longer emails customers or acts at payment providers. Invoice requests, reminders, proposals, back-in-stock alerts, recurring invoices and FluentCRM automations are held, and refunds, cancellations and renewal charges are refused, until an admin confirms "This is the live store". Hosts can decide with the GTFC_LIVE_STORE constant or the gtfc/live_store filter.
    • New Buy Links. Signed links put up to 20 products and coupons in a fresh cart and open checkout, without touching the shopper's own cart. Links can expire, and you can revoke them all at once. Build them under FluentCart → Buy Links.
    • New FluentCRM triggers for invoices, quotes, affiliates and back-in-stock alerts, smart codes such as {{gtfc.invoice_url}} and {{gtfc.affiliate_coupon}}, and a GT Extensions panel on each contact.
    • New GT Paddle, Polar and Dodo Payments settings have buttons that open the provider's API key page, and saving a GT Paddle API key on a public HTTPS site creates or repairs the Paddle webhook and saves its secret.
    • New For developers: gtfc_get_customer_invoices() and gtfc_get_customer_quotes(), the gtfc_invoice_admin_url and gtfc_quote_admin_url filters, and the gtfc_account_item_actions action, so help desks such as Core Support can show a customer's invoices and quotes and add "Get help" buttons. gtfc/invoice_recurring_created fires for each recurring invoice, and gtfc/lifecycle events say whether they came from the live store.
    • Fixed A recurring invoice that fails to save, issue or email no longer uses up its billing period. It retries with a growing delay, reuses the invoice it already created, never emails the same invoice twice, and periods that fall due meanwhile are billed afterwards.
  8. Stable

    2.17.2

    Fixes GT Paddle confirming a payment that a Paddle discount code reduced as paid in full.

    Read full notes 2 changes
    • Fixed A Paddle payment reduced by a Paddle discount code is no longer confirmed as paid in full. Only the amount after any Paddle discount counts, and a reduced payment waits for you to check it in Paddle.
    • Changed GT Paddle's checkout no longer shows Paddle's discount field. FluentCart coupons are already in the order total.
  9. Stable

    2.17.1

    Fixes FluentCart 2.2's store currency following the visitor's currency with Multi-Currency Checkout and invoice payments.

    Read full notes 3 changes
    • Fixed Product structured data no longer labels store-currency prices with the visitor's currency, such as 199.00 INR for a $199 product.
    • Fixed Orders placed in another currency keep FluentCart's currency snapshot against the store currency, with the exchange rate the order was charged at, instead of recording that currency as the base at a rate of 1.
    • Visitors still see prices, cart and checkout in their own currency, and orders are charged exactly as before.
  10. Stable

    2.17.0

    Checkout Enhancements can leave the trust block, headings, consents and other parts out of checkouts with nothing to pay. Pick them under Also hide when there is nothing to pay.

    Read full notes 5 changes
    • New Also hide when there is nothing to pay: the trust block, the "Billing information" heading, consent checkboxes, subtotal and total rows, the create account checkbox and the order note
    • Works on the checkout page, the checkout block, Modal Checkout and On-page Checkout, including orders a coupon makes free. Subscriptions billed later keep every part, and nothing is hidden until you choose it.
    • A consent hidden on a free checkout is not shown, not required and not recorded on the order.
    • Fixed Modal Checkout and On-page Checkout no longer refuse Place order with "Your currency changed to USD" when Multi-Currency Checkout shows the buyer another currency.
    • Fixed An external product opened in Modal Checkout or On-page Checkout sends the whole page to the product's link instead of offering it for sale in the store.
  11. Stable

    2.16.0

    Dodo Payments joins Polar and Paddle in the Payment Gateways module. Tick it under GT Extensions → Payment Gateways, then connect it in FluentCart → Settings → Payments.

    Read full notes 8 changes
    • New Dodo Payments gateway
    • A merchant of record with a hosted checkout for cards, UPI, Apple Pay, Google Pay and local methods. Dodo calculates and remits sales tax, VAT and GST. Connect a live and a test API key and webhook secret; the key is checked before the gateway turns on.
    • Order totals, coupons, invoice payment links and Pay What You Like amounts are charged exactly. The checkout currency is pinned to the order's, so Dodo's adaptive pricing can't switch it.
    • Subscriptions from daily to yearly with free trials, renewals recorded once, Cancel and Cancel immediately both ways, Sync and Verify. A signup fee or first-payment discount is refused at checkout with an explanation.
    • Refunds from FluentCart go to Dodo, and refunds made in Dodo are recorded on the order once, scaled to the pre-tax amount when Dodo added tax. Disputes are logged.
    • Dodo Payments can be duplicated for a second Dodo business, routes through Multi-Currency Checkout, is watched by payment failure emails, and hides the Payment section when it is the only way to pay.
    • Improved Every gateway GT Extensions adds (Polar, GT Paddle, Dodo Payments and their copies) carries a GTFC label on FluentCart's Payments screen, in Multi-Currency gateway routing, Modal Checkout's payment method classes, the payment failure email gateways and the product Checkout options card.
    • Improved Copies of Polar and Dodo Payments hide the Payment section when they are the only way to pay, like the originals.
  12. Stable

    2.15.0

    The module starts switched off. Enable it under GT Extensions, then turn it on per product in FluentCart's product editor.

    Read full notes 8 changes
    • New Pay What You Like
    • Buyers choose what to pay for a product, like Gumroad. Each option's FluentCart price is its minimum, so a free product becomes "free, or pay what you like" and a $19 product becomes "$19 or more".
    • The Pay what you like card in FluentCart's product editor sets an optional suggested amount, up to four quick amounts (0 works as a one-tap free choice) and an optional maximum. Amounts are in your store currency; Multi-Currency Checkout converts them.
    • Checkout shows a Name your price box. The total updates as the buyer changes the amount, and moving between free and paid reloads checkout so the payment methods follow.
    • A link can carry the amount: add ?gtfc_price=25 to a checkout or instant checkout link. It is kept within the product's minimum and maximum.
    • The chosen amount is the product line's real price, so coupons, tax, Coupon Affiliates commission, order items and FluentCart's reports all use it. Each order's activity notes the amount and the minimum.
    • Amounts are checked when saved and again at Place order. Switching currency resets the amount to that currency's default. Subscriptions keep their set price.
    • Improved Multi-Currency Checkout no longer resets a line whose price another module set.
  13. Stable

    2.14.0

    Each change has its own switch under FluentCart → Checkout enhancements, all on by default wherever Checkout Enhancements is enabled.

    Read full notes 11 changes
    • New Shorter checkout for free and digital orders
    • Free digital products no longer ask for the business checkbox, VAT number, country, state or currency.
    • Paid digital products skip the country and state. Both stay visible while FluentCart's own tax is on, because tax is worked out from them. A cart with anything that ships keeps every field.
    • The country is still saved on every order: from the cart, the buyer's location, FluentCart's own value or your store country. If none is known, the field shows as usual.
    • The coupon box is hidden when the products in the cart are free.
    • New "Get it for free" button
    • When the order total is zero, the Place order button reads "Get it for free". The text is editable.
    • New Sold Count multiplier
    • The badge shows the real count times the multiplier, rounded up (12 sold × 6.32 shows 76), up to 100×. It stays at 1 until you change it.
    • Fixed Sold Count badges counted 0 for every product. They now count completed and processing orders.
    • Improved The Modules list can be sorted by name, A to Z or Z to A.
  14. Stable

    2.13.1

    The Scheduled coupons switch is on by default wherever Extra Enhancements is enabled.

    Read full notes 5 changes
    • New Scheduled coupons
    • FluentCart refuses a coupon still marked Scheduled at checkout and only switches it to Active when someone opens its Coupons list, so a sale could open with its code refused.
    • With the new Extra Enhancements switch on, the coupon is checked against its own dates the first time a buyer enters it after the start date, saved as Active and applied.
    • Before the start date nothing is saved and FluentCart's own message still shows. A scheduled coupon past its end date is saved as Expired.
    • Turn it off under GT Extensions → Extra Enhancements → Scheduled coupons.
  15. Stable

    2.13.0

    Modal Checkout starts switched off. Both features require FluentCart 1.6.4 or later.

    Read full notes 11 changes
    • New Modal Checkout
    • Any Buy Now button, product link or checkout link opens FluentCart's checkout in a modal on the same page when it has the gtfc-modal-checkout class (the block editor's Additional CSS class field and page builders can add it) or a #gtfc-checkout flag in its link.
    • Optional settings open every FluentCart Buy Now button, or every link to the checkout page, in the modal with no class.
    • The modal checks out what the button points to: a Buy Now link's variation and quantity, the variation and quantity chosen on a product page, a product's default variation, a #gtfc-checkout=ID variation, or the visitor's cart. Links it can't handle keep working as normal links, and gtfc-no-modal keeps a button out.
    • pay-via- classes limit the payment methods the modal offers, for example pay-via-stripe. They work with every gateway FluentCart knows, including GT Extensions gateways and their copies, and an order with a method the modal didn't offer is refused.
    • The modal is an accessible dialog. It closes with its Close button or Esc, keeps the order for the browser tab when closed, and after Place order the whole page moves to the receipt or the gateway's payment page.
    • Pages stay cacheable and nothing is created until a modal opens. Each step fires a gtfc:modal-checkout event, plus a dataLayer event when Google Tag Manager is present.
    • New copies of Polar and GT Paddle
    • Duplicate Polar or Paddle (GT Extensions) from FluentCart → Settings → Payments to take payments into a second Polar organization or Paddle account.
    • Each copy has its own credentials, webhook URL, payments, refunds and subscriptions, and never touches another copy's records. Multi-Currency Checkout routes copies with their family's currencies.
    • Badges on the Payments screen: "GT Extensions" on GT Paddle and its copies, "FluentCart" on FluentCart Pro's own Paddle, and each copy's label (or "Copy N"). A copy with payments can't be removed.
  16. Stable

    2.12.0

    On-page Checkout starts switched off. Both features require FluentCart 1.6.4 or later.

    Read full notes 12 changes
    • New On-page Checkout
    • Put a plan picker and FluentCart's checkout form on any page with the On-page Checkout block or the [gtfc_checkout] shortcode. Buyers choose a plan, fill in their details and pay without leaving the page.
    • Plan cards show compare-at prices, billing periods, free trials, signup fees and a "Save N%" badge on longer plans priced below the monthly plan. Plans can come from one product or a list of variations across products.
    • Each visitor gets their own cart for the plan, separate from their store cart. Switching plans or reloading keeps what they typed, and a signed-in customer's cart is never resumed by anyone else.
    • The form loads when it scrolls into view or when the optional button is clicked, and the host page loads no checkout scripts. A coupon can be set on the block or comes from a ?coupon= link.
    • After Place order, the whole page continues to the receipt or the gateway's payment page.
    • New Paddle gateway
    • Paddle joins Polar in the Payment Gateways module, with separate live and sandbox credentials. Buyers pay in Paddle's overlay checkout, and Paddle handles sales tax and VAT as merchant of record.
    • Orders go to Paddle as their own line items, with nothing created in your Paddle catalog.
    • Subscriptions support daily to yearly plans, signup fees and free trials. Renewals become paid FluentCart renewal orders, and cancellations, pauses and past-due states sync both ways.
    • Refunds from FluentCart become full or line-item partial Paddle refunds; refunds approved in Paddle are recorded once. Payments for the wrong amount, currency or site are not confirmed.
    • Runs alongside FluentCart Pro's own Paddle gateway as "Paddle (GT Extensions)", with separate settings, webhooks and records.
  17. Stable

    2.11.0

    Both modules start switched off. They require FluentCart 1.6.4 or later.

    Read full notes 12 changes
    • New Coupon Affiliates
    • Customers with a paid order join from Refer & Earn in their account and get a personal FluentCart coupon. Friends get a discount; the customer earns cash commission on every paid order that uses it, repeat orders included.
    • Commission is a share of the products bought, after discounts and before tax, shipping and fees. Discount, commission rate and refund hold are settings (10%, 10% and 30 days to start), with per-affiliate rates.
    • Commissions count only once FluentCart records the payment. Holds end in a review queue; nothing is approved or paid automatically.
    • FluentCart → Affiliates covers affiliates, commissions, payouts and settings. Reserve a payout, export it as CSV, pay outside WordPress, then record the transfer. Bank details are never collected.
    • Partial, full and late refunds are reconciled automatically, self-referrals are refused, and test orders stay in a separate test ledger.
    • Customers see their code, a share message and link, balances, and anonymous referral references. Referred buyers are never named.
    • New FluentCart Optimizer
    • Optional "Store pages only" mode leaves FluentCart's storefront bundle off pages that sell nothing. Store pages, products, carts with items, campaign and coupon landings, and page-builder pages keep it.
    • Page and path overrides, an "always load" box in the page editor, and a toolbar note for admins showing each page's decision.
    • A copyable cache and script report for your cache plugin or CDN, a build check, and cart retention from 30 to 365 days.
    • Every change can be restored in one click, and the optimizer never purges a cache.
  18. Stable

    2.10.0

    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 notes 17 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.
  19. Stable

    2.9.1

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills need the free Site Agent plugin (https://gauravtiwari.org/product/site-agent/); Site Agent 0.4 or later serves them to connected…

    Read full notes 4 changes

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills need the free Site Agent plugin (https://gauravtiwari.org/product/site-agent/); Site Agent 0.4 or later serves them to connected agents without an extra install.

    • Fixed an issued deposit or balance invoice showed its order's share as "Items subtotal" in the admin view, for example USD 720.00 under items totalling USD 2,400.00. It now shows the invoice total, the deposit or deposit paid, any tax in this payment, and the amount due, the same as the customer's page.
    • The AI agent skills panel on Invoices → Automation now covers the /store skill alongside /invoice and /quote, including its gtfc-store name in Site Agent.
    • The Recurring invoices list gives each column a sensible width, wraps customer emails at the @ sign instead of mid-word, and fits a phone screen without scrolling sideways.
    • The "Invoices with a due date", "Ends" and "Each new invoice" headings now line up with the controls below them, and the quote proposal reminder field has room above it.
  20. Stable

    2.9.0

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills need the free Site Agent plugin (https://gauravtiwari.org/product/site-agent/); Site Agent 0.4 or later serves them to connected…

    Read full notes 9 changes

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills need the free Site Agent plugin (https://gauravtiwari.org/product/site-agent/); Site Agent 0.4 or later serves them to connected agents without an extra install.

    • Recurring invoices. Open an issued invoice and choose Repeat this invoice to bill the customer every 1 to 12 weeks, months or years, starting on a date you pick and ending never, after a number of invoices, or on a date. Each period creates a new invoice with its own number and payment link, then emails it or saves it as a draft for you to review. Invoices → Recurring lists every schedule; pause, resume or stop them there. A schedule on the 31st uses the last day of shorter months, and a site that missed its scheduled tasks creates one invoice and logs the skipped periods.
    • Deposits. Ask for a percentage or fixed amount first on digital and service invoices and quote proposals. When the deposit is paid, a balance invoice for the rest is issued and emailed automatically. Deposit and balance add up to the full total and tax exactly.
    • Reminders timed from the due date. Email settings takes up to four reminders before, on, or after the due date, with a new overdue message for those after it. Turn reminders off for a single invoice in its editor. Issued invoices list the reminders still queued. Quote proposals can send one reminder before they expire.
    • Fixed with automatic reminders on, only one unpaid invoice at a time received its reminder, and back-in-stock emails for several products could queue only the first product. Action Scheduler's unique flag ignores the job's arguments, so jobs are now unique per invoice and per product option.
    • New /store agent skill and gtfc_agent() commands: store.summary, order.list, order.get, stock_alert.list, stock_alert.send, product.details.get, product.details.set, page_access.pages, page_access.add and page_access.remove, plus invoice.schedule, invoice.unschedule and invoice.schedules. Changes support dry_run first. The bundled script runs any command with gtfc.py call.
    • The {due_date} email placeholder now uses your site's date format.
    • Dark mode fixes for FluentCart's dark theme. The Product details card on the product editor now has dark text boxes, checkboxes, dividers and a readable Add a detail link and Save button instead of white boxes on a dark card.
    • The Invoices and Quotes screens, the Checkout Builder layout picker and the Conditional module badge follow dark mode too, including the product search results, status pill, activity log and invoice layout picker.
    • The checkout details table in FluentCart's order view no longer shows dark grey labels on a dark background. It takes the page's text colour, so it reads well in light mode, dark mode and emails.
  21. Stable

    2.8.3

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills need the free Site Agent plugin (https://gauravtiwari.org/product/site-agent/); Site Agent 0.4 or later serves them to connected…

    Read full notes 4 changes

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills need the free Site Agent plugin (https://gauravtiwari.org/product/site-agent/); Site Agent 0.4 or later serves them to connected agents without an extra install.

    • The invoice and quote skills now work straight through a Site Agent MCP connection, in Claude, ChatGPT, Cursor and other MCP clients, with no Python script or local credentials. The agent runs each step with Site Agent's PHP tool.
    • With Site Agent 0.4 or later, the skills appear in Site Agent's own skill list as gtfc-invoice and gtfc-quote whenever Custom Invoices and Request a Quote are on, so a connected agent finds them without a download.
    • Invoices → Automation links to Site Agent, which is free, explains that agents connected through Site Agent 0.4 or later need no extra install, and still recommends adding the skills for everyday use.
    • The bundled script also accepts Site Agent's authenticated URL as a single SITE_AGENT_MCP_URL setting. INSTALL.md in each skill ZIP covers OAuth, Application Passwords and the authenticated URL.
  22. Stable

    2.8.2

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later. The agent skills also need the free Site Agent plugin with PHP execution on.

    Read full notes 5 changes
    • The invoice editor shows the total with tax beside the form and updates it as you type. Issue the invoice from that panel, right under Save your draft. It saves your changes and issues them in one step, and refuses to issue if the total changed while saving. You no longer save the draft first.
    • A draft linked to a quote request shows Send proposal in the same place instead. Pick the valid-through date, and the panel saves your prices and emails the proposal for acceptance in one step.
    • New AI agent skills for invoices and quotes. Download them under Invoices → Automation as ZIP files for Claude Code and other agents that read SKILL.md folders. They connect through the free Site Agent plugin, save drafts freely, and ask you before issuing an invoice or emailing a customer. The ZIPs contain your site's address and no passwords.
    • New gtfc_agent() PHP function for trusted integrations: list, create, update, issue and email invoices, and create, prepare, send and withdraw quote proposals as the signed-in user, with the same checks as the admin screens.
    • A proposal that the customer already accepted can no longer be sent again.
  23. Stable

    2.8.1

    Requires FluentCart. Invoices and the other store modules require FluentCart 1.6.4 or later.

    Read full notes 2 changes
    • New option to number invoices with FluentCart's invoice numbers. Choose it under Invoices → Invoice appearance → Invoice numbering. An issued invoice and its FluentCart order then show the same number, such as INV-1253, instead of two different numbers. Invoices and store orders share one series, so the next store order takes the number after the invoice.
    • The number stays with the invoice when the customer pays in another currency or you edit and reissue it, and a cancelled invoice keeps its number. Invoices issued before you change the option keep their numbers. GT Extensions numbering stays the default.
  24. Stable

    2.8.0

    Requires FluentCart. Invoices, Page Access, Checkout Enhancements, Product Enhancements and the other store modules require FluentCart 1.6.4 or later.

    Read full notes 12 changes
    • New Checkout Enhancements module. Turn it on under FluentCart → GT Extensions, then set it up under FluentCart → Checkout enhancements.
    • Consent checkboxes above the payment methods: privacy policy, marketing emails (unticked), the EU digital content withdrawal waiver, age confirmation, or your own wording with links. Each can be required and shown for every cart, physical carts, digital carts, or one product. The order keeps the exact wording, its version, and the time, and the order activity log records it. Customers see a message under any required box they missed.
    • Shorter checkout for digital orders: hide street, apartment, city, postcode, state, or phone when nothing in the cart ships. Invoice payments keep every field.
    • Rename checkout fields, the billing and shipping headings, the account and shipping checkboxes, the order note heading and placeholder, and the Place order button. Required-field messages use your names.
    • Trust block below the payment methods with a heading, up to six lines, a payment logos image, and a link to your refund policy page.
    • Order notes, Fields & add-ons answers, the delivery slot, and consents now appear on the receipt, in the customer's order view, and in a Checkout details panel on the admin order screen. Add {{order.gtfc_checkout_details}} to an email template to include them there.
    • New Product Enhancements module. Open a product in FluentCart to fill its Product details card: choose Physical product, Digital download, Book or ebook, Software or plugin, Course or service, or custom details only. A product shows its table once its details are saved, so turning the module on changes no product page by itself.
    • Brand, weight, dimensions, file type, file size, number of files, last updated date, and language are filled in from FluentCart and your site settings. Type over any of them, or hide one from the page. Enter either ISBN and the other is worked out; barcodes and ISBNs are checked before saving.
    • Give any detail a different value for each product option. The table updates when the customer picks another option.
    • The details table appears after the product description, or only where you place the Product Details block or the [gtfc_product_details] shortcode. A product's table prints once per page, whichever placement comes first, and starts on the option FluentCart selects by default. Details go into the product's structured data: brand, GTIN, model number, color, material, size, weight, dimensions, condition, and the rest as additional properties.
    • Each module's guide links open its new course lesson.
    • Checkout Builder layouts show ticked checkboxes, the selected shipping method and saved address labels in the layout's accent color. They were white on white before, including FluentCart's terms checkbox.
  25. Stable

    2.7.2

    Requires FluentCart. Invoices, Page Access and the newer store modules require FluentCart 1.6.4 or later.

    Read full notes 6 changes
    • Redesigned invoice items. Each item is a card with its image, name, a four-line description, delivery type, quantity, unit price, and line amount. One search finds store products and saved items, and the subtotal, discount, and shipping update as you type.
    • Save custom items as invoice-only items, on by default for new custom items. They appear in invoice item search and under Invoices → Saved items, and never in your store. Saving an item with the same name and currency updates it.
    • The invoice title is optional. A blank title becomes "Invoice" and the invoice number, such as Invoice INV-42, when you issue it.
    • Billing addresses are optional on invoices, whatever FluentCart's checkout requires. Customers can fill blank address fields at checkout while the issued tax stays fixed. A blank invoice address no longer clears a saved customer address.
    • New option to let the customer pay in any currency enabled in Multi-Currency. The invoice shows a currency choice beside Pay. Amounts convert from the issued invoice at your rates and markup; the invoice number and link stay the same, and editing the invoice restores the currency you issued it in.
    • Shorter invoice links: a 10-character code and a 16-character key replace the 36-character ID and 64-character key. Links sent before this update keep working until the invoice is edited.
  26. Stable

    2.7.1

    The lesson, "Unlock Pages and Links for Buyers", covers setup, published and private pages, who gets access, links on other sites and common problems.

    Read full notes 1 change

    Requires FluentCart. Page Access, invoices and the newer store modules require FluentCart 1.6.4 or later.

    • Open the Page Access course lesson from the module's guide links. They opened the course index before.
  27. Stable

    2.7.0

    Page Access is off until you enable it under FluentCart, GT Extensions. Turning it off later opens restricted pages to the public again; your page and product choices stay saved.

    Read full notes 5 changes

    Requires FluentCart. Page Access, invoices and the newer store modules require FluentCart 1.6.4 or later.

    • New Page Access module. Choose Page access from a product's menu, or Customer access in the page editor, to unlock pages for the customers who buy that product. Published pages show an access notice with sign-in and product links; private pages stay hidden from everyone except buyers and your team.
    • Access follows FluentCart orders: paid one-time purchases until the item is fully refunded, and subscriptions while active, trialing, completed, or past due, including the rest of a paid period after cancellation. A setting keeps subscription access after the first payment instead.
    • Buyers see their pages under My pages in the FluentCart customer account, or on any page with the [gtfc_my_pages] shortcode.
    • Give buyers links on other sites, such as a Notion template or a shared folder, from the same Page access screen. Buyers see them under My pages; the screen explains that these links cannot be paywalled and how to keep them unlisted.
    • Restricted pages are noindex, uncached, kept out of site search and sitemaps, and give SEO plugins the notice title instead of an automatic description from the content.
  28. Stable

    2.6.5

    Turn on Hide Price Until Login for individual products. Each product gets a "Login to purchase" entry in its FluentCart menu, and the module's "Apply to" setting chooses between those products and all products. Stores that already used the…

    Read full notes

    Turn on Hide Price Until Login for individual products. Each product gets a "Login to purchase" entry in its FluentCart menu, and the module's "Apply to" setting chooses between those products and all products. Stores that already used the module keep applying it to all products, so updating exposes no price; new setups are opt-in. Buy Now, Add to Cart, and quantity controls are now left out of the page per product, so a shop grid can mix hidden and visible products.

    Fixes: guest modal checkout for a login-only product now shows the login prompt instead of the HTTP 500 it returned since 2.6.4, and orders containing a login-only product are refused when the buyer must log in, closing carts created before the product required login. Invoice and existing-order payment links are unaffected.

    Validation: 21 per-product checks and the scope migration on MariaDB, 13 store-wide checks on FluentCart 1.6.6, real HTTP tests of Buy Now, modal checkout, and order placement for guests and logged-in customers in both modes, a failing pre-fix run, existing checkout cache-buster, currency, and invoice contract checks, PHP/JavaScript syntax, generated assets, and package integrity.

  29. Stable

    2.6.4

    Keep Hide Price Until Login prices off the page for guests. Product pages, shop grids, product cards, variant data, pricing tables, search results, and the public product API now leave the server with the login prompt instead of the amount…

    Read full notes

    Keep Hide Price Until Login prices off the page for guests. Product pages, shop grids, product cards, variant data, pricing tables, search results, and the public product API now leave the server with the login prompt instead of the amount. Buy Now and Add to Cart controls are hidden on FluentCart 1.6 markup, and guest instant-checkout links are refused. Unchecked login-link and redirect settings are now respected, and the prompt holds on Multi-Currency stores.

    Validation: 13 hide-price checks on FluentCart 1.6.6 (guest and admin rendering, REST, pricing table, instant checkout, signed-in REST without a nonce) with a failing pre-fix run, a guest scan of 9 storefront and API surfaces, existing checkout cache-buster, currency, and invoice contract checks, PHP/JavaScript syntax, generated assets, and package integrity.

  30. Stable

    2.6.3

    Fix Checkout Currency reverting visually to INR after saving USD. GT Extensions now identifies admin settings requests before FluentCart caches the currency, while preserving customer currency selection on the storefront.

    Read full notes

    Validation: 45 currency boundary checks, a failing 2.6.2 baseline, authenticated settings save/readback on FluentCart 1.6.6, existing checkout regression checks, PHP/JavaScript syntax, generated assets, and package integrity.

  31. Stable

    2.6.2

    The FlowMattic imports are under docs/flowmattic/. Open the imported Plugin Actions trigger, enter its hook, capture a sample, configure its action, and enable it after testing. The invoice draft template also requires the GTFC integration…

    Read full notes 7 changes

    The FlowMattic imports are under docs/flowmattic/. Open the imported Plugin Actions trigger, enter its hook, capture a sample, configure its action, and enable it after testing. The invoice draft template also requires the GTFC integration key and form-specific field mappings. See the bundled setup guide.

    Requires FluentCart. Invoice and newer store modules require FluentCart 1.6.4 or later.

    • Add six invoice designs: Amount First, Letterhead, Ledger, Catalog Cards, Project Statement, and Tax Detail. Preview each layout without creating an invoice, and choose a layout per invoice or as the store default. The editor groups project name, period, and customer-facing scope beside the template choice.
    • Add project names, service periods, and item descriptions. FlowMattic invoice items can choose a bundled icon or a public HTTPS image URL; the image follows the invoice into FluentCart's order and checkout.
    • Expand Back-in-stock alerts with status totals, per-option demand and stock state, product/SKU search, and status filtering.
    • Give invoice controls clearer action groups and icons, better manual-tax field spacing, and help text that explains what customers see and how totals are calculated.
    • Add a paused FlowMattic import for turning completed Core Forms submissions into reviewable invoice drafts. The form event ID prevents duplicate drafts on workflow retries. Drafts create no native order and send no customer email until a merchant issues them.
    • Add the gtfc/lifecycle WordPress action for quote requested, quote accepted, invoice issued, and invoice paid transitions. One flat payload carries an event type and stable event_id, with no private proposal or payment URL. A paused FlowMattic trigger import is included.
    • Point the in-plugin guides and training links to the current customer portal lesson routes.
  32. Stable

    2.6.0

    Requires FluentCart. Invoice and newer store modules require FluentCart 1.6.4 or later. See the bundled readme.txt and docs/INVOICE-AUTOMATION.md for details.

    Read full notes 9 changes

    Requires FluentCart. Invoice and newer store modules require FluentCart 1.6.4 or later. See the bundled readme.txt and docs/INVOICE-AUTOMATION.md for details.

    • Invoice improvements
    • Create invoices from FlowMattic through the keyed, idempotent gtfc_create_invoice PHP function. Paused import templates for webhook and WordPress custom-action triggers are included under docs/flowmattic/.
    • Edit unpaid invoices while preserving their invoice number. Reissuing creates a new native FluentCart order and revokes the old payment link. Paid, partially paid, and refunded invoices stay locked.
    • Choose a template per invoice, configure the default layout and invoice numbering, and edit or hide the company registration label.
    • Apply a custom tax amount to a custom invoice item, or use FluentCart's configured tax calculation. Billing address fields are available to automation.
    • Improve dark-mode admin text contrast and add the bundled invoice icon.
    • Included since the previous GitHub release
    • The 2.5.0 general-store modules: custom invoices and quote proposals, five checkout designs, service products, wishlists, back-in-stock alerts, checkout fields and add-ons, delivery scheduling, and saved carts.
    • Multi-currency checkout and gateway routing refinements, customer and seller invoice profiles, contextual documentation, and conditional minified assets.
  33. Stable

    2.4.2

    Load the External Product resolver only where a product can appear.

    Read full notes 3 changes

    Product pages, product archives and categories, the store pages, and any post embedding a FluentCart block or shortcode are unaffected.

    • Its script and stylesheet were enqueued on every request, so about 11KB downloaded and a DOM scan ran on posts, pages, and the home page that never render a FluentCart button.
    • The decision now runs through the shared storefront check every other module already uses, so External Product also recognises the configured cart, checkout, shop and account pages and FluentCart shortcodes.
    • FluentCart blocks rendered outside post content, such as template parts and saved page blocks, still get the resolver.
  34. Stable

    2.4.1

    Patch release for 2.4.0.

    Read full notes

    Converts product prices a theme renders itself. 2.4.0 made the storefront currency symbol follow the visitor's selection, so the cart drawer would stop labelling converted amounts with the store currency's sign. Prices inside FluentCart's own blocks were converted to match — but a theme can render a product price too, reading the cached price span straight from the database and formatting it with FluentCart's helper. No filter can reach a number obtained that way, so such a price showed the right symbol against an unconverted amount.

    Single product pages are now transcoded in one pass over the whole response, which covers theme and third-party output as well. The page pass and the per-block passes are mutually exclusive, so nothing is converted twice, and the buffer returns the original markup on any error rather than swallowing the page.

    Also maps the stored price-span columns, so a product whose cached span has drifted from its variations still converts.

    Everything in 2.4.0 is included.

  35. Stable

    2.4.0

    Seven hooks were registered under names FluentCart does not use:

    Read full notes 11 changes

    Requires FluentCart 1.5.5 or newer. Verified against FluentCart 1.6.1.

    • Multi-currency correctness
    • Cart totals were converted twice. FluentCart fires cart/can_purchase before cart/item_price against the same in-memory variation, so the price filter re-applied the exchange rate to an already-converted amount and a ₹480.00 line rendered as ₹46,219.00.
    • Every product-page price now converts, not only the one FluentCart exposes a filter for. The compare price, header price range, and variant cards previously kept store-currency amounts, so a converted price sat beside an unconverted one. Manual price-book entries still win over the exchange rate.
    • The currency symbol follows the selection across the whole storefront, not just checkout, so the cart drawer no longer labels converted amounts with the store currency's sign.
    • Receipts and order confirmations report the currency the order was charged in. FluentCart's receipt renderer formats every amount with no currency argument.
    • Features that were silently disabled: Seven hooks were registered under names FluentCart does not use:
    • cart/validate_add and cart/validate_update do not exist — can_purchase is the gate Cart::addItem() actually runs, so minimum/maximum quantity limits and guest purchase blocking were enforced only in the browser and a direct cart request bypassed them.
    • fluent-cart/product_stock_availability was hyphenated; product/buy_now_text, product/show_add_to_cart, variation/data and admin_js_vars do not exist at all.
    • is_singular('fct_product') tested a database table prefix rather than a registered post type, so module CSS printed on every page of the site while the matching scripts ran on none.
    • External Product admin screen: Rebuilt: saves over AJAX with inline status (the no-JS form post still works), card layout, dependent fields that disable while redirection is off, client-side URL validation, a live button preview, and a readout of the exact rel attribute that will ship. FluentCart's product navigation is now styled, since FluentCart does not load its admin stylesheet on a custom submenu page.
    • Performance: A variation's whole price book is read in one query and reused. The currency selector's stylesheet, script and cart lookup load only where a price can appear, and its uncacheable status request no longer fires on pages with no selector.
  36. Stable

    2.2.0

    What's new

    Read full notes 9 changes
    • What's new
    • Add External Product with per-product URL, button text, link target, nofollow, sponsored, and price-visibility controls.
    • Replace storefront purchase controls across product pages, cards, and standalone FluentCart purchase blocks.
    • Redirect legacy instant-checkout links and reject external products in local cart and checkout validation.
    • Remove the bundled FluentCart Core and Pro source; FluentCart is now an independently installed dependency.
    • Requirements
    • WordPress 6.0 or newer
    • PHP 7.4 or newer
    • FluentCart 1.5.5 or newer for External Product and Multi-Currency Checkout
  37. Stable

    2.1.6

    Fixes currency switches that could change only the symbol while retaining the previous numeric amount.

    Read full notes 4 changes
    • Binds currency REST reads and writes to the exact FluentCart checkout hash.
    • Reprices stale cart amounts before updating symbols or gateway routing.
    • Keeps catalog formatting from inheriting checkout-only currency symbols.
    • Preserves currency-aware gateway validation for INR, USD, EUR, and GBP.
  38. Stable

    2.1.5

    Complete local-currency support for FluentCart block checkouts.

    Read full notes 4 changes
    • Resolves currency before WordPress constructs checkout inner blocks.
    • Restores saved cart currency on every checkout request.
    • Synchronizes FluentCart normalized formatting with cart currency.
    • Keeps symbols, selector state, totals, and currency-based gateway routing aligned.
  39. Stable

    2.1.3

    Checkout currency-context restoration patch.

    Read full notes 3 changes
    • Restores the saved cart currency into FluentCart formatting on every checkout request.
    • Prevents stale base-currency symbols and selector state after automatic repricing.
    • Keeps totals and currency-based gateway routing synchronized.
  40. Stable

    2.1.2

    Checkout rendering synchronization patch.

    Read full notes 3 changes
    • Resolves local currency before WordPress pre-renders FluentCart checkout inner blocks.
    • Keeps the first response currency symbol, selector, totals, and gateway routes synchronized.
    • Retains shortcode and block-checkout compatibility from 2.1.1.
  41. Stable

    2.1.1

    Patch release for FluentCart checkout-block compatibility.

    Read full notes 3 changes
    • Resolves location currency before block checkout prices render.
    • Shows the currency selector on block and shortcode checkouts.
    • Synchronizes currency-aware payment gateway routing with block checkout totals.
  42. Stable

    2.1.0

    Local currency at checkout

    Read full notes 6 changes
    • Local currency at checkout
    • Automatically selects an enabled local currency when checkout loads.
    • Resolves location from billing country, shipping country, then Cloudflare visitor country.
    • Reprices the full cart in the configured default currency when the local currency is disabled or cannot price every item.
    • Preserves manual customer currency choices and refreshes automatic choices when checkout country changes.
    • Keeps checkout display, gateway routing, REST hydration, cart state, and order currency synchronized.
  43. Stable

    2.0.0

    GT Extensions for FluentCart 2.0.0 replaces the old per-variation currency label with a complete multi-currency checkout system.

    Read full notes 7 changes

    Highlights:

    Multi-currency checkout requires FluentCart 1.5.5 or newer. Version 2.0.0 is designed for two-decimal currencies; test zero-decimal currencies separately before production use.

    • One authoritative currency per cart, order, transaction, and subscription.
    • Exact per-variation price books with manual or Frankfurter exchange-rate fallback.
    • Currency-to-payment-gateway routing with preferred gateways and server-side validation.
    • Server-side cart repricing for items, fixed coupons, shipping, fees, and signup amounts.
    • Storefront currency selector and [gtfc_currency_selector] shortcode.
    • FluentCart product-editor controls for exact local prices.
    • Redesigned responsive settings, diagnostics, rate markup, rounding, and missing-price behavior.
  44. Stable

    2.5.0

    Release custom invoices, quote proposals, five checkout designs, service products, wishlists, and general-store tools.

    Read full notes 5 changes
    • Release custom invoices, quote proposals, five checkout designs, service products, wishlists, and general-store tools.
    • Automatically enable Custom Invoices when Request a Quote is enabled, including older quote-only settings. Preserve saved preferences and explain the dependency beside its toggle.
    • Fix field spacing, checkbox alignment, and input overflow in every module settings popup.
    • Refresh module workspaces after saving changed module switches.
    • Include the checkout currency-cart fix, reusable invoice customer details, selectable seller identity, contextual documentation, and minified conditional assets from the release previews.
  45. Beta

    2.5.0-beta.5

    Fix checkout currency switching for regular device carts while preserving exact instant-cart targeting and ownership checks.

    Read full notes 5 changes
    • Fix checkout currency switching for regular device carts while preserving exact instant-cart targeting and ownership checks.
    • Ignore stale cart hashes embedded in cached selector markup and prevent overlapping currency changes.
    • Import selectable invoice seller logos, addresses, company details and registration/tax identifiers from FluentCart.
    • Save reusable customer billing and separate delivery details from invoice drafts, with invoice-only overrides.
    • Preserve phone data in native order addresses and freeze seller details on issued invoices.
  46. Beta

    2.5.0-beta.4

    Add contextual setup guides for every module, dedicated workspace, license settings, and the product currency price book.

    Read full notes 2 changes
    • Add contextual setup guides for every module, dedicated workspace, license settings, and the product currency price book.
    • Link to the complete evergreen training course with examples and illustrated workflows.
  47. Beta

    2.5.0-beta.3

    Always serve minified, content-hashed CSS/JS; load product admin tools on demand and limit storefront bundles to the features rendered.

    Read full notes 6 changes
    • Always serve minified, content-hashed CSS/JS; load product admin tools on demand and limit storefront bundles to the features rendered.
    • Add Warm Split checkout design and remove the separate custom checkout-design management UI.
    • Add a native Request a Quote block with searchable product selection and an admin shortcode/block guide.
    • Add editable demo checkout fields, conditional badges, clearer examples, and visible checked-state styling.
    • Place wishlist below native purchase buttons with a Tabler heart and use the selected variation.
    • Redesign the product currency price book, highlight service settings, and show compact currency codes in storefront selectors.
  48. Beta

    2.5.0-beta.2

    Activate any of four built-in checkout layouts directly, without creating posts or using the block editor.

    Read full notes 7 changes
    • Activate any of four built-in checkout layouts directly, without creating posts or using the block editor.
    • Add inert desktop/mobile sample previews and merchant-only real-cart previews.
    • Preserve the default FluentCart checkout until a merchant explicitly selects a design; appearance-only saves do not activate one.
    • Verify classic-theme compatibility with block editing enabled and disabled, without Full Site Editing.
    • Add preview links for paid invoices, status badges, refreshed customer invoice styling, and print support.
    • Align checkout add-on checkboxes with their labels and use compact paragraph titles for customization controls.
    • Improve customer saved carts, wishlist empty states, and quote-request forms; add a Tabler account-menu icon and update saved-cart lists immediately.
  49. Beta

    2.5.0-beta.1

    Add custom one-time invoices, quote proposals, four checkout layouts, service products, and optional general-store tools.

    Read full notes 8 changes
    • Add custom one-time invoices, quote proposals, four checkout layouts, service products, and optional general-store tools.
    • Port the scoped checkout cache buster.
    • Add invoice item images/icons and guarded quote linking.
    • Normalize backend screens with FluentCart-style controls and bundled Tabler SVGs.
    • Add module/currency search, stable configuration dialogs, collapsible add-on editors, and improved delivery scheduling.
    • Fix wishlist currency entities, role-based price visibility, and malformed saved-cart metadata.
    • Verify native offline checkout, fees, delivery booking, concurrency, and customer scoping in an isolated local store.
    • Local beta only; external gateway and production mail validation are still required before live use.
  50. Stable

    2.3.0

    Restyle the admin screens to match FluentCart's own interface: its Inter typeface, navy primary, card surfaces, and Element Plus form and switch proportions, in place of the default WordPress blue.

    Read full notes 3 changes
    • Restyle the admin screens to match FluentCart's own interface: its Inter typeface, navy primary, card surfaces, and Element Plus form and switch proportions, in place of the default WordPress blue.
    • Group settings into cards instead of borderless rows, and quiet the tab row to an underline.
    • No functional or settings changes; every option behaves exactly as before.
  51. Stable

    2.1.4

    Resolve currency at WordPress's pre-construction block-data stage.

    Read full notes 2 changes
    • Resolve currency at WordPress's pre-construction block-data stage.
    • Ensure FluentCart checkout inner blocks receive the correct currency context before producing HTML.
  52. Stable

    1.0.2

    Fix Free Price Text and Hide Price Until Login selectors for simple product prices.

    Read full notes 2 changes
    • Fix Free Price Text and Hide Price Until Login selectors for simple product prices.
    • Add console error logging for module scripts to aid debugging.
  53. Stable

    1.0.0

    Initial release

    Read full notes 8 changes
    • Initial release
    • Added Free Price Text module
    • Added Multi-Currency Variations module
    • Added Sold Count Display module
    • Added Stock Urgency Labels module
    • Added Min/Max Quantity module
    • Added Hide Price Until Login module
    • Added Custom Add to Cart Text module