Skip to content
Gaurav TiwariChangelog

Plugin changelog

GT Extensions for FluentCart

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

Latest
2.13.1
Releases
40
Updated
October 18, 2026
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.

  16. 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.

  17. 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.

  18. 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.
  19. 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.
  20. 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.
  21. 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.

  22. 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.
  23. 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
  24. 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.
  25. 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.
  26. 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.
  27. 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.
  28. 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.
  29. 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.
  30. 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.
  31. 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.
  32. 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.
  33. 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.
  34. 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.
  35. 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.
  36. 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.
  37. 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.
  38. 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.
  39. 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.
  40. 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