Skip to content
Gaurav TiwariChangelog

All products

Changelog

Every release across our products, newest first.

RSS feed

Showing 13–24 of 542 releases

  1. Stable

    Site Agent 0.5.1

    Fixed: OAuth connections are bound to the approving site, and concurrent token use cannot restore revoked credentials or overwrite a completed refresh.

    Read full notes 5 changes
    • Fixed OAuth connections are bound to the approving site, and concurrent token use cannot restore revoked credentials or overwrite a completed refresh.
    • Fixed Partial autosaves preserve omitted fields; registered metadata honors native permissions and schemas; save hooks see final metadata and terms.
    • Fixed File mutations and fatal-change rollbacks preserve concurrent edits, including must-use plugin moves.
    • Fixed Captured output remains valid UTF-8 and preserves JSON object shapes; imported media and new terms retain literal backslashes.
    • Fixed Failed package builds preserve previous ZIPs and checksums; HTTP mutation checks require a verified disposable fixture and recognize all bundled skills.
  2. Stable

    Stackless for WooCommerce 1.5.3

    Fixed: Currency-Aware Payment Gateways now knows the currencies the built-in Stripe, PayPal and Polar gateways can charge. Stripe was listed under the wrong id and Polar not at all, so both were allowed for every currency and never appeared in the "Not known to support this currency" warning. Each gateway now declares its own list, and the PayPal list is no longer a separate copy.

    Read full notes 2 changes
    • Fixed Currency-Aware Payment Gateways now knows the currencies the built-in Stripe, PayPal and Polar gateways can charge. Stripe was listed under the wrong id and Polar not at all, so both were allowed for every currency and never appeared in the "Not known to support this currency" warning. Each gateway now declares its own list, and the PayPal list is no longer a separate copy.
    • Fixed when Polar's organization currency differs from the order currency, the extra default-currency price Polar requires is now converted at the Multi-Currency rate instead of copying the number over unchanged (a ¥5,000 order no longer carries a $5,000 default price).
  3. Stable

    Stackless for WooCommerce 1.5.2

    Fixed: switching a fixed-term subscription to a plan on a different schedule no longer makes it renew forever. The new plan's number of payments is kept and counted from its first period.

    Read full notes 15 changes
    • Fixed switching a fixed-term subscription to a plan on a different schedule no longer makes it renew forever. The new plan's number of payments is kept and counted from its first period.
    • Fixed paying an old switch order after the subscription was cancelled, or after another switch already applied, no longer reactivates or changes it. The order and subscription get a note asking you to review or refund.
    • Fixed sending an early manual renewal invoice no longer suspends a subscription that still has paid time. The grace period now counts from the billing date the invoice is for.
    • Fixed when Paddle, Polar, PayPal or Stripe sends a webhook while the same order is busy, Stackless now asks the provider to retry instead of accepting the event and dropping it. Polar refunds that arrive during a busy moment are no longer lost either.
    • Fixed Stripe no longer marks an order paid when the payment was authorized for an older amount or a different currency, for example after the order was edited during card authentication. The order goes on hold with a note instead. Two Stripe requests for the same order no longer run at once or release each other's lock.
    • Fixed switching an invoice's currency after revising and reissuing it no longer brings back the amount from before the revision.
    • Fixed an order bump with a fixed discount can no longer push a price below zero in another currency, and the bump's minimum and maximum cart totals are compared in the shopper's currency. Bumps that need product add-on answers are no longer offered as one-click adds, and bumps without a discount use your price-book prices.
    • Fixed percentage shipping costs are no longer converted twice for shoppers paying in another currency, and the base currency no longer picks up the exchange-rate markup.
    • Fixed checkout fees that depend on a free checkout field now show in the block checkout's order summary before the order is placed.
    • Fixed WooCommerce Optimizer no longer strips store scripts and styles from pages whose store blocks sit inside a synced pattern.
    • Fixed switching two modules on or off at the same moment no longer undoes one of the changes.
    • Fixed AI agent order searches now respect the date range when a search term is also given, and return the newest matches first.
    • Fixed the public licensing info endpoint no longer shows descriptions and changelogs for draft, private or password-protected products. Private and password-protected products still show to requests with a valid license key.
    • Fixed deleting a refund, or restoring a paid-out order from the trash, now gives back the affiliate commission that was clawed back.
    • Changed FluentCRM now removes the old product's tags and lists when a customer switches plans, keeping any that another active subscription still uses.
  4. Stable

    Core Support 0.8.5

    Chat keeps what it learned current on its own, and learns post types without an editor, such as a site's tools, from their excerpt, terms and custom fields.

    Read full notes 9 changes
    • Added Excerpts, terms and custom fields. Every learned post now also gives Chat its excerpt, its terms and its custom fields (Advanced Custom Fields or Secure Custom Fields, and meta registered for the post type), so post types without an editor are learned at all: before, a post with no content was skipped. A field group tab that opens with an on/off field that is off is left out, so a switched-off deal is never quoted; underscore fields, images, files, passwords and hash-like values are never read. Chat → Knowledge → Custom fields to leave out lists more. Filter core_support_chat_post_fields.
    • Added A custom field changed without a post save (an import, WP-CLI, the REST API) marks the post for the next check, and so does a change to any of its terms.
    • Changed Changes are learned every 30 minutes, and only what changed. Publishing or updating a post of a learned type, a store price, option or license change, a changelog's text, synced release dates, pre-releases or kept history, and a doc moving to another collection (or its collection being renamed) now mark the post as changed instead of learning it at once. A new 30-minute check (core_support_chat_sweep, schedule core_support_chat_30min) learns marked posts again, oldest change first, then posts modified since they were learned, then published posts of a learned type that were never learned, so a backlog of missed posts never holds back a change just made. Each post is embedded only when its passages differ from what was learned, so an unchanged post costs no embedding request. Up to 25 posts a check and 20 seconds (core_support_chat_sweep_batch, core_support_chat_sweep_seconds); the rest waits for the next check. Each check also compares up to 10 unchanged learned posts, oldest first, for changes no hook reports (core_support_chat_sweep_checks, 0 turns it off), and forgets learned posts that are no longer published. Three embedding failures in a row end a check; a post that keeps failing moves behind the others.
    • Changed The daily store check now compares every learned product with what Chat learned and marks the changed ones, instead of queueing every product.
    • Changed Unpublishing, trashing and deleting still forget a post at once. "Learn all now" still learns at once.
    • Changed What Chat has learned shows on the Knowledge tab only, no longer above Conversations.
    • Changed The learning card shows how many posts are waiting for the check and what the last check did. Filter core_support_chat_watched_meta lists post meta whose changes mark a post.
    • Fixed "What is the current version?" answered with an old release. Every changelog release is its own passage, and none said which one is newest, so Chat answered from whichever release matched the question best. Each changelog now starts with a passage that names the current version and its date, the newest pre-release when there is one, and the six most recent releases. On upgrade, every learned changelog is marked once so the next check learns it again.
    • Fixed A post type with no pages of its own was offered as a source link that led nowhere; it no longer shows one.
  5. Stable

    Core Support 0.8.4

    Your own header and footer on the docs, changelog and support portal pages, and smaller, deferred assets.

    Read full notes 3 changes
    • Added Header and footer settings. Settings → Header and footer has a card for each of the docs, changelog and support portal pages. Show or hide the logo and the site name, change or remove the label beside them, show or hide the docs search box, and add links and buttons to the header, each a plain link, a button or a primary button, in any order. The footer can be hidden, can carry its own text such as © {year} {site}, can show or hide the footer credit, and can list its own links. Addresses can be full https:// addresses, paths on the site, or Core Support pages such as {docs} and {support}. On phones, plain header links move into a menu. The defaults match the pages before this release.
    • Added Filters core_support_header_links and core_support_footer_links change a page's links.
    • Changed Minified, deferred assets. Release builds include a minified copy of every stylesheet and script (a third smaller before compression), served unless SCRIPT_DEBUG is on. The portal and block scripts and the admin scripts now load deferred, like the docs and changelog scripts already did. Embed snippets for connected sites name the minified scripts; snippets copied before keep working.
  6. Stable

    Core Support 0.8.3

    Custom badges for changelog labels.

    Read full notes 2 changes
    • Added Custom badges. Settings → Changelogs has a Custom badges editor: a label (such as Beta or Docs), a colour (green, blue, orange, red, yellow or gray) and other words that show the same badge, with a live preview. Changes labelled with those words, as [Beta], Beta: or under a ### Beta heading, show the badge on changelog pages, in feeds and the visual editor's suggestions, and come through the API as category custom-{label}. Custom words win over built-in ones, so Docs can be a badge of its own; a badge named after a built-in one (New, Improved, Fixed, Removed, Deprecated, Security or Breaking), such as Fixed | green | patch, changes its colour and adds words to it, and its category stays fixed. Up to 20 badges, stored one per line as Label | colour | other, words, which also works without JavaScript.
    • Added Filters core_support_changelog_category and core_support_changelog_tone set a label's badge and colour.
  7. Stable

    Core Support 0.8.2

    Bring existing courses and changelogs over: FluentCommunity courses become docs, other changelog sites become kept release history, and every docs collection gets clean addresses of its own.

    Read full notes 4 changes
    • Added Import FluentCommunity courses as docs. wp core-support docs import fluentcommunity <course> turns a course on this site into a collection: sections keep their titles and order, each published lesson becomes a doc, and links between lessons (also into courses imported earlier) point at the new docs. --retire hides the course in the community and redirects its lesson and course addresses to the docs, although FluentCommunity still answers them. An "&" in a section title no longer turns into "amp" in its address.
    • Added Kept release history for changelogs. wp core-support changelog history <url> --changelog=<slug> keeps every release from a published changelog page (one that lists releases as <article class="release">, following its /page/N/ pages) beside the changelog's own or synced text. Syncing never removes history, and where a version is in both, the history's notes show. Feature headings become badged changes with their details below, and the one-line summary is not repeated. Chat learns the full history, one passage per release.
    • Fixed --no-images on wp core-support docs import was rejected as an unknown parameter; it now leaves image addresses as they are.
    • Fixed Doc addresses are resolved inside their collection. Two collections can each have a "Getting started" section at /docs/{collection}/getting-started/ instead of the second becoming getting-started-2, and an address always opens the doc in the collection it names. Imported top-level docs keep their clean slug, and plain-permalink doc links name the collection too.
  8. Stable

    Core Support 0.8.1

    Chat finds the right passage among all of a site's docs, and relearning never leaves it without answers.

    Read full notes 6 changes

    Upgrading

    • Changed Search reads every passage. Each question is compared with every learned passage instead of a shortlist of about 50, and that ranking is combined with the database's word search, so a passage that names the exact product, setting or error code still comes first. Only the best passages' text is read. With a persistent object cache (Redis or Memcached), the vectors are kept there. Above 5,000 passages at 512 dimensions (proportionally fewer with longer vectors, and 2,000 for keyword search without FULLTEXT), Chat compares a shortlist as before; the core_support_chat_full_scan_max_chunks filter changes the limit. See the [retrieval benchmark](docs/chat-retrieval-benchmark.md).
    • Changed Smaller vectors. OpenAI text-embedding-3 and Voyage 4 search models store 512 numbers per passage instead of 1,536 or 1,024, so search reads a third to a half of the data, at a small cost in accuracy. The core_support_chat_embedding_dimensions filter sets another size, or 0 for the full one.
    • Changed Every passage knows its doc. Passages start with the doc's title and the product it documents ("Core Forms › Install the plugin"), both for search and for the model, and follow the doc's H2 and H3 sections instead of breaking in the middle of one. A long section's later passages repeat its heading. Text from neighboring blocks no longer runs together.
    • Changed A new search model keeps Chat answering. After you choose another search model, every post is learned with it in the background while Chat keeps answering with the old one; Chat switches once every post is learned, then deletes the old passages. The learning card on the Knowledge and Conversations tabs shows the progress. Before, answers stopped until everything was learned again by hand.
    • Fixed Safe relearning. A post's passages are replaced in one database transaction, so a failed save keeps the old ones and a question never meets a half-written post. One process learns a post at a time; a post saved while it is being learned is learned again right after. Duplicate passages left by earlier versions are removed, and the database now refuses new ones.
    • Fixed Updating from 0.8.0 learns every post again in the background, with one embedding request per post for OpenAI and Voyage search models. Chat answers from the stored passages until it finishes. While Chat is off, this waits until it is turned on.
  9. Stable

    Core Support 0.8.0

    Chat answers more directly and on point, and learning shows its progress as it happens.

    Read full notes 11 changes
    • Added How Chat answers. Chat → Settings has a new card: answer length (short, balanced or detailed), what Chat answers questions about (this site and its products, or anything with the site's content first), asking one short question when a question is unclear, suggesting a person for accounts, orders, billing, refunds and bugs, and your own rules, one per line (up to 20). Your rules win over the built-in ones, except never asking for passwords or keys.
    • Added Built-in answer rules. Chat answers the question in its first sentence, uses the docs for facts about the site and copies names, prices, menu paths and setting labels exactly, answers for the product, plan or version the visitor means, writes steps as a numbered list, replies in the visitor's language, and ends without filler.
    • Added Limits in every answer. Each answer length has a word limit (about 80, 180 or 400 words) and a matching output cap, never above "Longest answer". Chat asks at most one question and adds at most two links per answer, never says it checked, changed or sent something, never promises refunds, prices, dates or features the docs do not state, keeps to the docs on legal, tax, medical and security questions, and ignores instructions hidden in docs or messages that try to change its rules.
    • Added A model and thinking level for each task. Chat → Settings sets the thinking level for answers (off, low, medium or high) and, for follow-up questions and conversation titles, its own model and thinking level. Follow-up questions such as "what about teams?" can be rewritten by a model into a full search, so the right docs are found; the built-in rules stay the default. Test connection checks every chosen model once.
    • Added Store data in Chat's knowledge. WooCommerce products, FluentCart products and Easy Digital Downloads are learned with their store data, not only their description: price and sale price, options and their prices, SKU, stock status, attributes, categories, subscription terms (billing period, trial, sign-up fee), and license terms (sites per license, validity, current version, WordPress and PHP requirements). Stackless subscription and software licensing terms on WooCommerce products are included while those Stackless modules are active. Products are re-learned when their prices, options, stock status or terms change, and once a day for changes no hook reports; unchanged products are skipped without an embedding call. The core_support_chat_product_facts filter adds facts for any post type.
    • Added Learn all now, five posts at a time. The Knowledge tab learns a post type in batches of five while the screen is open, and the Learned column, the summary and the progress bars update after every batch. A failing key stops the run with the provider's reason instead of working through every post. Without JavaScript the old background queue still runs.
    • Fixed Token usage on streamed replies. OpenAI and DeepSeek streams now ask for usage, Claude streams count input tokens from the start of the reply as well as output tokens, and a reply from a provider that sends no usage is estimated from its text, so the daily token budget holds. Follow-up rewrites and conversation titles count toward the budget too.
    • Fixed Thinking level for Claude. The level is sent as Claude's effort, thinking is switched off where the model allows it (Claude Haiku 5.5, Sonnet 5 and Opus 5; Sonnet 5.5 drops up-front thinking), and Opus and Sonnet 4.6 to 4.8 think when a level above Off is chosen. Before, the setting did nothing for Claude.
    • Fixed Room to think. Thinking tokens count toward a reply's output cap on every provider, so answers, titles and connection tests get extra output room when thinking runs, and a thinking model no longer spends the cap before it writes a word.
    • Changed Background learning runs in batches of five posts instead of twenty, and the Learned column and summary update while jobs are waiting.
    • Changed "Extra instructions" is now "Tone and extra instructions" under How Chat answers, added after your rules.
  10. Stable

    Core Support 0.7.0

    Docs, Changelogs and Chat join the help desk: product documentation at /docs/, release history at /changelogs/ synced from GitHub or written in wp-admin, and an AI assistant that answers from the docs and hands over to a ticket. Telegram joins team alerts.

    Read full notes 25 changes
    • Added Changelogs at /changelogs/. One changelog per product or service and every release across products, with a product list, Stable only filter, an address per release (#v1.2.0), RSS and a JSON API. Each changelog's releases are one text in WordPress readme or Markdown style, written in wp-admin or synced every 24 hours (customizable) from a readme.txt, CHANGELOG.md or changelog.txt at any address, a GitHub repository (private ones with a token) or its GitHub releases, or wordpress.org. Undated versions take their dates from GitHub releases. Labels such as [NEW], [IMPROVED], [BUG FIX] and [REMOVED] become badges. See [integrations](docs/integrations.md#changelogs-release-history-at-changelogs).
    • Added Changelog editor. The Releases panel starts with a choice: write releases here, or sync them from GitHub or a file. Written changelogs have a visual editor (release cards with version, date, summary and labeled changes, Enter for the next change) and the same changelog as text, kept in step through the site's own parser. Synced changelogs show what an address points at, Check source to preview it before saving, which token applies, the schedule, a status card with the file being read, Sync now in place, and the synced releases read-only.
    • Added One GitHub token for changelogs. Settings → Changelogs holds a fine-grained token used for every changelog synced from GitHub (private repositories included) unless a changelog sets its own. Saving it re-checks failed changelogs at once, and failed syncs are retried hourly.
    • Added Current models built in: GPT-6 Astra, GPT-6.1 Sol and GPT-6 Luna (default), Claude Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5, and DeepSeek V4.1 Flash, each with the previous generation. GPT-6 models are sent as reasoning models, "Off" reasoning becomes "low" for Astra and Sol, and Claude 5 models are sent without temperature.
    • Added Test connection for Chat. Chat → Settings sends a one-line test to the chosen chat and search models, with a key typed in the form or the saved one, and says whether each answered, how fast, and why not (refused key, unknown model, rate limit, server error). Nothing is saved and keys never come back.
    • Added Learning progress. The Conversations and Knowledge tabs show how much of the chosen content Chat has learned, per post type, and what is waiting; the bars update while learning runs.
    • Added Chat model lists stay current. With an API key saved, each provider's newest models and up to three previous versions are listed, refreshed daily.
    • Added Chat learns from any post type. Chat → Knowledge lists every public post type with what it has learned, Learn all now and Forget.
    • Added Chat placement. Choose where the chat button shows: every page, docs pages, support portal pages, the home page, single posts of each type, extra addresses (with * for a whole section), and addresses where it never shows. Docs and support pages are the default.
    • Added Footer credit. Settings → Branding sets the text that replaced "Powered by Core Support" on portal and docs pages, with an optional link, or hides it.
    • Added Portal and docs color mode. Visitors get a light portal, docs and chat widget by default; Dark and Automatic are options. The wp-admin workspace keeps its own color mode.
    • Added Docs at /docs/. Product documentation in collections, sections and pages with branded standalone pages, instant search, "On this page", previous and next, callout and steps block styles, "Was this helpful?" feedback, signed-in-only collections, redirects from old addresses, and a Docs insights screen for empty searches, unhelpful docs and stale pages. See [integrations](docs/integrations.md#docs-product-documentation-at-docs).
    • Added Chat. An AI assistant that answers from your docs, ported from Alpha Chat: OpenAI, Anthropic, xAI or DeepSeek, OpenAI or Voyage embeddings or keyword search with no extra key, streaming replies with source links, and "Talk to a person" handoff into a ticket with the transcript. One script tag embeds it on connected sites, with origins checked and conversations owned by a server-issued token. Encrypted keys or CORE_SUPPORT_CHAT in wp-config.php, a daily token budget, rate limits, message and turn caps, retention, and privacy export and erase. Core Support → Chat has settings, knowledge indexing, conversations and embed code.
    • Added Docs importers (wp core-support docs import): docs sites by sitemap or page, Markdown files and GitHub wikis, and wordpress.org readmes, as drafts. Native blocks that pass editor validation, images copied into the media library, links between pages rewritten, old addresses recorded for redirects, and safe re-runs that never overwrite edited or published docs.
    • Added Telegram team alerts. Alerts can go to a private chat, a group, a forum topic or a channel through your own bot. Settings → Team alerts checks the token with Telegram when you save it, and Find my chat lists the chats the bot has seen so nobody has to look up a chat ID. Customer text is escaped, link previews are off, and the ticket link is a button when the site uses HTTPS.
    • Added Alert settings in wp-config.php. The CORE_SUPPORT_ALERTS constant can hold any team-alert setting, including tokens, for one site or a map of blog IDs. Constant values show read-only and are never copied into the database.
    • Added The core_support_alert_channels filter lets add-ons register their own alert channels.
    • Changed Standalone pages (docs, portal, changelogs) use the system sans-serif when the font is set to "Theme font", since theme CSS is not loaded there.
    • Changed Docs and changelog pages have clear titles ("Documentation", "Product changelog", "Product 1.2.0 release notes") instead of archive titles.
    • Changed Chat settings are grouped into cards, checkboxes are tiles that follow light and dark mode, and selects keep readable text on hover in dark mode.
    • Changed Docs and standalone portal pages load only Core Support's CSS and JavaScript. Theme and plugin styles and scripts are removed, including styles WordPress 6.9+ moves into the head after the page is built; titles, meta tags, canonical links and JSON-LD stay. The core_support_standalone_handles filter keeps chosen handles.
    • Changed Dark workspace screens in wp-admin paint the whole page, not only the Core Support panel.
    • Changed Chat indexes nothing while it is switched off.
    • Changed Each channel is delivered on its own. Every alert becomes one WP-Cron job per channel, so a slow or failing service no longer delays the others. Rate limits, server errors and timeouts retry after 1, 5 and 30 minutes (or later when the service asks), up to three times; other rejections are reported at once. Alerts queued by earlier versions still go out.
    • Changed Team alerts screen: one card per channel, each with its own Save, Send a test alert, last-delivery status (Ready, Working, Retrying, Failed, Paused) and a switch that pauses the channel without forgetting its settings. Problems never show saved credentials.
  11. Stable

    GT ACF Blocks Plugin 2.13.0

    Blocks saved by 2.12.x render with the same classes and the same visible colors, with three intentional exceptions: a checklist whose background is still the old #f9fafb default follows the theme surface; a true/false stored as "0" is treated as off; and an unsafe color or custom HTML tag is dropped rather than printed. New hero, CTA, and marketing fields do nothing when they are empty.

    Read full notes 13 changes
    • Changed Blocks use the Tabler visual language. Cards, buttons, badges, type, radius, and shadows follow Tabler 1.4 (~/tabler, tabler.css and tabler-marketing.css): system sans, 14px controls, 6px buttons, 8px cards, a 1px border, and a soft card shadow. Colors still come from the theme, so Marketers Delight’s [data-theme] toggle and a dark operating system keep driving light and dark. Tabler’s own palette is only the fallback when a theme variable is missing.
    • Fixed Dark text on dark surfaces. Hero and CTA text was inherited, so a dark heading color could sit on a dark card or photo. Thread’s light style pinned #0f1419 while its background followed the theme. URL preview’s featured gradient ended on a light blue, and its dark style painted field values with the border color. Post display and feature grid dark styles used muted and border tokens that stay dark on a fixed dark panel. Filled buttons that used the theme primary, or white text on a text-colored fill, now use the button fill with the text color that belongs on it. A product box badge picks dark or light text from its background.
    • Added Pricing, Logo Cloud, Steps, and Trust Bar. Four marketing blocks for landing pages: plan cards with one highlighted tier, a logo row (with an optional grayscale style), a numbered “how it works” sequence, and a strip of guarantees. Every field is optional. They register in a new ACF Marketing inserter category and do not change how existing blocks are stored or rendered.
    • Added Hero image position. Background (the original cover image), left, right, or stacked. An empty or Background value keeps the previous markup, with no extra class. An optional overlay color is printed only on the background layout, and only when a color is set.
    • Added CTA alignment and a second button. Centered text is unchanged. Left or right adds a modifier class. A second classic button renders only when it has both a label and a URL. “Open in a new tab” adds target and rel only when it is switched on, for both the hero and CTA classic buttons.
    • Fixed Colors in style attributes are limited to real color values. Section, callout, CTA, product cards, compare, product box badges, and the thread connector previously printed the picker value after HTML escaping, which still allowed a second CSS declaration. Hex (including 4- and 8-digit), rgb()/hsl(), transparent, and currentColor pass through. The product box badge, product card header, and thread connector keep their previous fallback colors when the field is empty.
    • Fixed Section custom tags can no longer open another element. A custom tag is accepted only as a single tag name. script, svg, and values such as img src=x fall back to section. Ordinary tags such as article and blockquote still work.
    • Fixed Checklist cards no longer pin a light panel in dark mode. The old #f9fafb background was written inline, so it beat the theme token. That legacy value is now omitted. A color an editor actually chose is still written. The green accent default (#16a34a) is unchanged, including when the field is empty.
    • Fixed ACF true/false values of "0" are off. A plain boolean cast treats the string "0" as true, so an unchecked checklist item, an unchecked “verified” mark, and the checklist toggles could render as on. "1", 1, and true still mean on.
    • Fixed Stats stay at their real number until the count-up starts. The script used to set every value to 0 before the block scrolled into view, so a stat that never intersected (a closed disclosure, print, or a missed observer) stayed at 0. Numbers with thousands separators also count the full value. Blocks added after the first paint, including infinite scroll, start the same way.
    • Fixed Coupon copy no longer depends on an inline handler. The button stores the code in data-code, and a conditional view script copies it. If the async clipboard is denied, it falls back to a textarea selection instead of failing silently.
    • Fixed Opacity colors such as rgba(0, 0, 0, 1.0) stay applied. The color check treated 1.0 as invalid, so a fully opaque picker value on a section or hero overlay was dropped.
    • Fixed Pricing and steps no longer leave an empty column. Fewer plans than the chosen column count use only the columns they need, and a step sequence sizes itself to the steps. Blank repeater rows are skipped. A marketing block with nothing to show does not print an empty section. Two classic CTA buttons wrap instead of colliding.
  12. Stable

    GT Extensions for FluentCart 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.