Free Shipping Bar for WooCommerce changelog
Every version, newest first, with the date it was released. Updates install from your Plugins screen.
1.12.0
- New "Almost there" when the cart is close. From 80% of the free shipping amount (50 to 95, under Bar → Wording), the bar says "Almost there! Just {remaining} more for free shipping." instead of its in-progress messages, while browsing and in the cart. It changes with the cart without a page load. Empty the box to turn it off. Shops already running the plugin keep their wording, and the Dashboard offers the message once.
- Improved Pages with a pinned bar spend less time working out styles. The room the bar keeps at the edge of the screen is now set as the bar is drawn, instead of by rules the browser rechecked against the whole page on every change. In a test page of 1,500 products, 300 changes elsewhere on the page went from about 110ms of style work to about 3ms.
1.11.0
- New No more "spend more" when delivery is already free. When every package in the cart already has a delivery rate that costs nothing, such as a Flat rate of 0 for its shipping class, the bar says "You have unlocked free shipping." with a full track instead of asking for more, and the product page's line and the cart suggestions stand aside. It reads the rates WooCommerce already worked out and never asks for new ones; local pickup does not count. To hide the bar in those carts instead, choose Hide the bar under Setup → Free Shipping Goal.
- Improved A Google font no longer holds up the page. The font chosen under Bar now loads alongside the page instead of before it, so the page appears without waiting for Google, and the bar shows in your theme's font for a moment until the font arrives. The Bar screen now says a Google font is fetched from Google by each visitor's browser.
- Improved Faster pages on sites in Spanish or French. The translations now also ship as PHP files, which WordPress 6.5 and later reads from PHP's code cache instead of reading the translation file again on every page. Measured on a French site with all fifteen of our plugins: 6.3 ms and 0.8 MB of memory less on every request. Older WordPress reads the translations as before.
- Improved Opening the plugin's screens asks less of your server. To make switching tabs instant, the plugin loads its other screens in the background while you read the first one. It now loads at most four, the plugin's own tabs first, and none while the browser tab is in the background; a tab past the fourth loads as your pointer reaches it.
- Fixed Product lists do no work while the bar is off. With the bar switched off under Setup, the "Ships free" label no longer hooks into product lists, and a block theme's Product Collection no longer loads every listed product again only to print nothing. Where no label can show on a page, it loads nothing for it either.
- Fixed No "deprecated" notice from Cloudflare's plugin when you save. With WP_DEBUG on and a current version of Cloudflare's plugin, emptying its cache printed a deprecation notice, which could stop a save from returning to its screen. Cloudflare is now asked under its current name, and the old one only on older copies.
- Fixed Notes that should be hidden stay hidden. A hint or note a screen had hidden could still show, because the style that lays hints out outranked the browser's own rule for hidden things. Hidden things on the plugin's screens now always stay hidden.
1.10.2
- Fixed Page caches are emptied only as far as a change needs. With LiteSpeed Cache, the first visit after an update pressed its Purge All, which also deletes its combined CSS and JS files, empties the object cache and PHP's code cache, clears Cloudflare where LiteSpeed is set to, and leaves "Purged all caches successfully." on your next screen. It now empties LiteSpeed's cached pages only. On a network, WP Super Cache is emptied for this site alone, where it emptied every site's (except a save on the main site of a network in subfolders, whose cached pages hold the other sites', and WP Super Cache's legacy copies, which it always clears for every site).
Earlier versions
September 2026 40 versions
1.10.1
- Fixed An address in another alphabet under Excluded addresses now leaves out that page, and nothing else. Pasted from the browser, an address such as /контакты/ was saved as //, which hid the bar on your front page instead, and a section such as /блог/ as //, which hid it on every page. Addresses are now kept as pasted and match however the browser writes their letters. A line saved before keeps doing what it did: if Excluded addresses holds /, // or //* that you did not mean, delete it and paste the address again.
1.10.0
- New "Ships free" in your product lists. Products whose own price already reaches free shipping get a small label after their price in the shop, categories, tags and search, and in a block theme's Product Collection, counted by the bar's own rules so adding that one product unlocks free shipping. There is no label where free shipping needs a coupon, for virtual or excluded products, or where the cheapest option of a variable product falls short. Change the words under Bar → Wording, or empty them to hide it. On for new installs; existing shops are offered it once on the Dashboard.
1.9.2
- Fixed Turn the bar on and Turn the bar off on a Dashboard left open do what they say. Both buttons flipped the bar whichever way it stood when you pressed, so a Dashboard opened before the bar was switched on elsewhere switched it off, together with what it does at checkout. Each button now sets the way its label says, and if the bar already stands that way it changes nothing and tells you so.
- Changed On a network whose sites share one address, closing the bar on one shop no longer closes it on the others. A shopper who closed the floating bar on one shop of a sub-directory network stopped seeing it on the others too. Each shop now remembers its own, so shoppers there may see the bar once more. Single sites and sub-domain networks are unchanged.
1.9.1
- Fixed Cart suggestions show different products. Every product gets one card before any gets a second, so one best seller's sizes and colours no longer take every card while other products fit. Suggested from categories, a product gets one card at most and is not suggested while another of its variations is in the cart. Suggested from products you choose, a variable product's other sizes and colours fill the places left over, and only the variation in the cart is left out.
1.9.0
- New Cart suggestions. The cart page can suggest a few products that would get the shopper to free shipping, each with an Add to cart button (Display → Cart Suggestions). New shops have it on. Shops updating keep their cart page as it was, and the Dashboard offers it when the bar's notice on the cart page is on.
- Improved Free shipping chosen at checkout. Once the bar says free shipping is unlocked, checkout can choose Free shipping for the shopper instead of a paid rate WooCommerce picked, or show only the free options (Setup → Checkout). On WooCommerce 9.9 and later the second is WooCommerce's own "Hide shipping rates when free shipping is available". New shops start on choosing Free shipping. Shops updating keep checkout as it was, and the Dashboard suggests the change where it would help.
1.8.1
- Improved Product pages with both product lines emptied do no extra work. With This product unlocks free shipping and This product does not count both empty under Bar → Wording, the product page no longer prices up to 100 of the product's variations, or the product itself, before showing the bar alone.
- Fixed French counts zero in the singular. French writes "0 message", not "0 messages", and the plugin's French now counts the way WordPress's own French does.
1.8.0
- New The product page tells shoppers when this item gets them free shipping. With On product pages switched on under Display, a line under the bar says "Add this to your cart and shipping is free." when that item, at the quantity chosen, reaches your free shipping amount, and "This item does not count towards free shipping." when its shipping class is left out of the total under Setup. It follows the quantity and the variation as the shopper changes them, and stays quiet whenever the promise might not hold, such as when a coupon in the cart takes its discount off the total or your free shipping method also needs a coupon. Both sentences can be reworded or emptied under Bar → Wording, where the preview shows each one under an example bar.
- Changed Shops already showing the bar on product pages get this line straight away. If On product pages was on before this update, the new line can appear under the bar on your product pages with nothing to switch on. To keep your product pages as they were, empty the This product unlocks free shipping and This product does not count boxes under Bar → Wording.
1.7.17
- Fixed A bar at the top that follows the screen no longer collides with our other plugins. With the bar at the top set to "Push the page down, then follow the screen", Lucky Wheel's launcher or the Dark Mode switch in a top corner, and a Cookie Consent banner along the top, now sit below the bar. Before, the launcher sat on the bar, the switch slipped behind it and the banner covered it.
- Fixed Links reached with the Tab key are no longer hidden behind a share bar or cookie banner. In current browsers, when the Social Share Buttons bar or a Cookie Consent banner stands with a pinned shipping bar, moving through the page with the Tab key no longer stops on links hidden behind them, at the top or the foot of the window. With the bar floating along the bottom, the end of the page now leaves room for the bar and a cookie banner together, so footer links can be scrolled clear of both.
- Fixed A bar placed with the shortcode uses your chosen font on block themes. On a block theme, a bar placed with
[trasl_free_shipping_bar]could be drawn in the theme's font instead of yours on pages where the floating bar was not showing. It now uses the Google font chosen on the Bar screen wherever it is placed. - Fixed Licensing and updates run on the newest licence code on your site. With several of our plugins on one site, all of them now use the newest licence code any of them carries, whatever order WordPress loads them in. One exception: while the first of our plugins that WordPress loads (usually the alphabetically first) is on a version from before this update, its older code still serves them all until that plugin is updated too. An older plugin of ours can also no longer stop this plugin's admin screens loading.
- Improved The documentation calls each setting by the name on the screen. It now says Excluded addresses, Login status, Setup → Cart Total → Coupons and discounts and Delete all data on uninstall, where it used names these screens do not show.
1.7.16
- Fixed The bar stays off the pages you hid it from. A shop that had told version 1.2.9 or earlier to keep the bar off product pages, product categories or product tags got it back on every one of them on the day it updated, with nothing said. Those rules work again, and the Display screen names them in WooCommerce's own words instead of describing a working rule as deleted.
- Fixed A licence check that cannot reach us no longer clears your key. One timeout, or one error page from something between your site and us, deleted the licence key you had entered together with the list of sites using it, leaving a screen that asked you to go and find the key again. What is stored is now cleared only when the licence server has actually passed judgement on the key.
- Fixed A key the licence server does not recognise can be typed over. If a key had been reissued or deleted, the notice on every admin page said to enter it again while the licence screen kept the box locked and offered only Deactivate this site. The box now stays open with Activate licence beside it, and the old key's activation count and site list are no longer printed next to a key the server has never heard of.
- New Check again, on the licence screen. Renew a licence, or have support put one right, and one press picks it up instead of waiting for the next automatic check. If the check cannot be made, the screen says why and changes nothing.
- Fixed Deactivate this site, Free and Check again work with the key box empty. None of the three reads that box, but all three were answered with "Enter your licence key first." and no request was made.
- Fixed A page search box left behind no longer drags the screen to the top. Under Specific pages or Excluded pages on the Display screen, opening the suggestion list and then moving to another screen of the plugin, or pressing the browser's Back button, left the old box still working: every attempt to scroll pulled the page back to the top. A screen you have moved away from now lets go of its search boxes and of its tick lists.
- Improved Repeating a search under Specific pages or Excluded pages no longer goes back to the server. On a shop with more pages and products than the plugin holds in the browser, every search was a fresh request, including one typed a moment earlier on the same screen. Answers are now remembered for as long as you stay on that screen. On smaller shops the whole list is already in the browser, so nothing changes there.
1.7.15
- Fixed A cached page no longer shows every visitor one visitor's free delivery figure. On a shop whose shipping zones ask for different amounts, with WooCommerce's Default customer location set to Geolocate, a browsing visitor's country is only a guess, and a page cache handed the first guess it stored to everybody after it. The bar now shows your shop's own figure until a visitor has something in the basket or is signed in, and their own zone's figure from then on. Nothing changes on Shop base address or on Geolocate (with page caching support), where nothing is guessed.
- Fixed "Minimum cart total to show the bar" is read in the shopper's currency. On a shop with a currency switcher the figure you typed was compared against a basket total that had already been converted, so a shopper browsing in a currency worth less than yours saw the bar sooner than you meant, and one browsing in a stronger currency saw it later or not at all. It is converted now, like the Threshold above it on the same screen.
- Fixed Pressing "Check again" on the Updates screen looks for a new version straight away. One failed connection to us left a note on the site that stopped every one of our plugins asking again for fifteen minutes, and "Check again" cleared this plugin's own wait but not that note. It clears both now.
- Improved A long list of named pages is read in one go. On sites running WPML, every page named under Specific pages or Excluded pages was fetched from the database on its own, on every view of a post, page or product. They are read together now.
1.7.14
- Fixed Changes show straight away. Changing or pausing the bar now clears your page cache, so visitors see the new version at once.
- Fixed Default messages stay in your shop's language. Saving a settings screen while your own admin language was different could store the default messages in that language. If you want a default message in a language other than your site's, change its wording slightly so it counts as your own.
- Improved Less work on every page with the bar. The shopper's shipping zone is looked up once per page instead of three times.
- Fixed Importing settings from another site leaves out the excluded shipping classes, which could name different classes there, and the notice says so.
- Fixed A schedule that runs past midnight keeps to its days. In the Schedule panel, a Friday window from 22:00 to 02:00 now stays on until 02:00 on Saturday. It used to stop at midnight, and to come on between midnight and 02:00 early on Friday instead.
1.7.13
- Improved Fewer database queries on every admin page. Each of our plugins checks its licence on every admin screen, to know whether to show the licence notice, and read its saved licence and its "Remind me later" flag with a query each. With the whole range installed that was thirty separate lookups on every admin page, most of them for rows that do not exist yet. They are now read together in one query (on WordPress 6.4 or later). Measured on a test site with all fifteen plugins: the WordPress Dashboard went from 41 queries of ours to 12.
1.7.12
- Improved A download is made once, not twice. Pressing Export settings built the file twice: the admin's no-reload navigation fetched it first, found a file rather than a screen it could show, and then asked for it again the ordinary way. On a long list that was twice the wait, and twice the work for the server. Each download is now a single request. Measured in a browser: two requests per click before, one after.
1.7.11
- Improved Pages with the bar download less. The script and stylesheet visitors are sent are now minified: 16.1 KB became 5.8 KB compressed, 64% less, on every page that shows the bar. The readable files stay in the plugin, and a minified copy is only ever sent while it was built from the file as it is now, so an update can never be hidden behind an old copy. With SCRIPT_DEBUG on, the readable files are sent, as WordPress does for its own. Checked by photographing the same pages both ways at two screen sizes: identical, pixel for pixel.
1.7.10
- Improved One update check for all of our plugins on a site, instead of one each. Every plugin of ours used to ask our server about updates separately — fifteen requests in a row on a site with the whole range, twice a day and every time you press "Check again". The first plugin asked now asks for all of them at once, and the rest read the answer. Measured on a site with all fifteen: fifteen requests became one, and the whole check took a third of a second. If our server refuses or cannot be reached, every plugin waits the same fifteen minutes before trying again, rather than each trying in turn.
1.7.9
- Improved A bar pinned to the top says how tall it is. A cookie banner at the top now stands under the bar, and a prize-wheel launcher or a dark-mode switch in a top corner stands below both — the same rule the bar already follows at the bottom. Nothing else changes.
1.7.8
- Improved Makes room for a cookie banner. The bar's share of the foot of the window now counts a consent banner too, so a corner button stands above both rather than under one. Nothing else changes.
1.7.7
- Fixed A wp-admin that would not load when our licence server could not be reached. Each of our plugins checked for its own updates, and if the server was unreachable each one waited out its own fifteen-second timeout — so a site with several of them could spend minutes on a single admin page, twice a day, for something entirely outside its control. The first one to find the server unreachable now says so for the whole site, and the others stand down until it is worth trying again. Measured on a site with fifteen installed: fifteen waits became one.
1.7.6
- Fixed Import now asks before it replaces every setting you have. The Import button said in its own hint that it could not be undone, and then did it the moment you pressed it: the question that was meant to appear never had anything to show it. Every other plugin in the range asked. This one does now.
1.7.5
- Improved One less trip to the database on every page of your shop. The bar's settings were stored in a way that made WordPress fetch them separately on every single page a shopper looks at, instead of letting them arrive with everything else it already collects at the start. Measured on a real shop: one query a page, gone. Nothing about the bar changes; it just costs the shop a little less to show it.
1.7.4
- Fixed A setting that is waiting on another one is readable again. A field held back until you switch something else on is dimmed, so it does not look identical to one you simply have not used — but it was dimmed so far that its label and explanation fell below the contrast a person with ordinary eyesight needs. Measured on the rendered screen at 2.55:1 against the 4.5:1 minimum, and now 4.75:1 and 5.02:1. The greying, the sunken background and the blocked cursor carry the rest of the signal.
- Fixed This plugin had kept its own copy of the dimming rule, which quietly overrode the corrected one, so its settings screen alone stayed at the old unreadable contrast until the screens were read rather than reasoned about.
1.7.3
- Fixed A link could put words of its own into an admin notice. The bar that appears at the top of a screen after an action took its wording from the address, so a link crafted by somebody else could show an administrator a sentence this plugin never wrote. Only the sentences the plugin itself registers are shown now.
- Improved The help text under each setting can be read at a glance. A settings screen is scanned, not read, and several notes here had grown into paragraphs. They say the same thing in a line or two, in Spanish and French as well as English.
1.7.2
- Improved The Import / Export panel says plainly what the file carries. It is settings only: nothing you have written or collected, and never a password, an API key or your licence key.
1.7.1
- Fixed The Export and Import buttons had no icons. Both asked for a mark the plugin did not carry, so both drew nothing at all under a heading that had one.
1.7.0
- New The Licence screen now shows which sites are using your key. "You have used all your activations" used to leave you to work out which sites those were, in your account, on another tab. Every site on the licence is listed now — the date it was added, when it last checked in, and a Free button beside it — so you can let go of a site you no longer run and put this one on without leaving the page. "Last seen" is the column that decides it: a copy that stopped checking in months ago is the one to free. The list appears on a refused activation too, directly under the key you just typed, with the same buttons. Local and staging copies are listed as well, marked free, so the count adds up.
- Improved Updates follow the activation, not just the key. Freeing a site now really does free it: that site is still told when a new version exists, but it is not handed the download, and its own Licence screen says plainly that it is no longer on the licence and offers to activate again.
- Fixed Two things on the Licence screen were never translated — the screen's own heading, and the "2 of 3" activation count. Both read in your language now.
1.6.0
- New Move your settings to another shop. Setup → Import / Export writes a small
.jsonfile with the bar design, the colours, the wording and the display rules in it, and reads one back on your next shop — so a bar set up on staging does not have to be set up again from a screenshot. Settings only: no orders, no statistics and no licence key, and not the free shipping amount, which always comes from WooCommerce's own shipping zones on the shop it is running on. Rules that name a particular page, post or category travel as numbers that mean something else on another site, so those are left as they were and the message says which. An imported value goes through the same checks as a typed one, so a hand-edited file cannot put anything into your settings that a screen would have refused.
1.5.40
- Improved Plainer words on every screen, after somebody who runs a shop and has never written code read the whole plugin and said what they could not follow.
- Fixed A hint told you to do something on a screen that is not here. The schedule said to exclude pages from caching without saying which pages or where. It now says what actually happens: a caching plugin can serve an old copy, so the bar may appear or go a few minutes late.
- Fixed The licence errors said the server had answered badly and stopped there. They now say whether to wait, retry, or check the key.
1.5.39
- Fixed A shop that cannot ship now says so, instead of showing nothing and explaining nothing. The bar will not promise free delivery on a shop that cannot deliver, which is right — but until now it did that in silence. A merchant could type a threshold under Setup, save it, see no warning anywhere, and find no bar on any page. The Dashboard leads with the reason now, ahead of anything else, and the Setup screen repeats it under the goal whichever way the threshold is set.
- Improved And it says which of the two reasons it is. A shop can be unable to ship because shipping is switched off under WooCommerce → Settings → General, or because it is on with no method set up under Shipping. Those are different problems on different screens, so each gets its own words and its own button. Being sent to add a method you already have is worse than being told nothing.
1.5.38
- Fixed Tabbing onto a "Remove" or "Undo" link showed the wrong ring, or none. Those quiet link-shaped buttons in a table row are WordPress's own kind, and WordPress rings them in its blue with a rule stronger than the one this plugin writes — strong enough that it also cancelled the ring the plugin draws. Somebody working down a screen with the keyboard either saw a colour that belongs to no part of this plugin, or lost sight of where they were altogether. They now wear the same ring as every other control here.
1.5.37
- New Four more designs for the bar, twelve in all. Tide has no groove at all: the bar itself fills with your accent colour, with a line along its top edge that stops where the cart has got to. Split cuts the bar in two — the message on one side, a gauge the full height of the bar filling on the other. Underline is the quietest of the twelve: no groove inside the bar, just a hairline of progress along its whole foot and a rule of the same colour down the edge the reading starts at. Dial is a small block in the corner of the screen with a ring around the icon instead of a bar. Every one of them works at the top or the bottom of the page, on a phone, and in a right-to-left language. Nothing you have already chosen has changed.
- Improved The Classic bar's note said "message on the left, progress on the right", which is the other way round in Arabic or Hebrew, where the bar has always mirrored itself. It now says the message first and the progress after it.
- Fixed Reaching the goal no longer paints a green band across the page. The Floating pill, the Card and the Edge line draw themselves on a small box inside a full-width strip that is otherwise invisible, and the "after the goal" colours were landing on that strip rather than on the box. Crossing the threshold turned the whole width of the screen green with the pill or the card still in its old colours on top of it — and the Edge line, which is meant to be a hairline and a small chip, became a solid band across the top of the page. The colours now go where the shopper can see them, the Card's icon badge changes with them, and the Gradient goes on being a gradient instead of turning flat.
- Fixed The Gradient bar's progress could not be seen. Its groove was painted in a fixed white wash instead of the track colour you chose, and the fill faded towards white, so how far along the cart was measured between 1.19:1 and 2.85:1 against the groove behind it — the one thing this bar exists to say. The groove is your colour again and the fill is solid, with the slow shimmer kept. The bar's own tint also mixed in so much of your accent that a light accent left the message at 3.09:1 at the far end; it mixes less now, and the tint runs the other way on a right-to-left site.
- Fixed The close button was too faint to read. At the shade it was drawn in it measured 4.48:1 against the colours the plugin ships for a cart that has reached its goal, and under 4:1 on plenty of merchants' own. It is drawn more solidly now, and still steps back from the message.
- Fixed The Milestones segments no longer wait for JavaScript to line up. The notches between the segments were cut out of the groove and the fill separately, and the fill's copy had to be told the groove's width in pixels by a script — so they sat out of line until it ran, and needed a rule of their own for right-to-left. They are painted over the top of both now: in line on the first frame, in both reading directions, with no script.
- Fixed A long word no longer runs off the end of the bar. A German compound, a product code or a pasted link in your wording used to keep going past the edge of the bar rather than wrapping. It now gives way like any other word, at every width.
- Fixed The Floating pill, the Card and the Dial no longer overflow a narrow column. Dropped into the cart dropdown in a theme's header, or a cart drawer, they kept the width of one long line and were cut off at the column's edge. They now take only the room they are given — and the pill's row wraps as well, because a row that will not wrap still has a shortest possible width: in a 231-pixel dropdown it came to 265 and hung over the edge whatever it had been told about its width. The progress drops under the message there, so the pill is a little taller instead of too wide. On a page with room it looks exactly as it did.
- Improved Small things across every design. The close button on the Centred bar sits level with the message instead of hooked into the corner; the Edge line's chip and the Floating pill's message are on the same type scale as the rest instead of half a pixel off it; the chip, the pill and the card share one shadow rather than three; the Split bar's spacing on a phone and the gap beneath the cart and product notices join the Centred, Edge line and Floating pill bars back on the same four-pixel rhythm as everything else; and the Dial keeps the same gap on both sides of the screen on a phone instead of a pixel or two more on one.
- Improved Every card in the design gallery shows the design it names. The miniatures left out the icon, so the Card had no badge and the card labelled "Delivery van" had no van on it, and they were drawn in an accent colour the plugin stopped shipping because it measured 2.77:1 against the groove it fills. They now draw the icon, the van and the parcel, in the colours a shop is actually given.
1.5.36
- Fixed A floating bar no longer covers your header or the end of the page. The Floating pill, the Card, the Edge line and any bar set to float sat on top of the logo, the menu and the cart button at the top of the page, or over the last lines and footer links at the bottom, and keyboard users could tab onto links hidden beneath it. The page now keeps the bar's own height free at that edge, so nothing is under it until the shopper scrolls, and a link that takes the focus is scrolled clear of it. A bar along the bottom also tells the range's other floating buttons, such as the Dark Mode switch, how tall it is, so they sit above it instead of behind it.
- Fixed "Wait before showing" and "Hide after" no longer make the page jump. The bar flashed up as the page loaded, vanished, and came back after the wait, pushing everything down twice, and hiding it pulled everything up again. It now keeps its place from the first moment, invisible while it waits and after it hides, so nothing else on the page moves.
- Fixed Screen readers now hear the bar change. Adding something to the cart or changing a quantity changed the bar's words, but nothing was read out. The new message is now announced each time the cart changes. The progress fill also glides to its new place again, instead of jumping.
- Fixed The preview on the Bar screen shows what you are editing. It showed the saved browsing message whatever you typed. It now writes each message as you type, shows the bar at the moment that message is for, with the "After the goal" colours once the goal is reached, and uses the font you pick. A line under it says which message it is showing.
- Fixed The Dashboard and Setup screen report the threshold your own shoppers see. Where zones had different thresholds, they could report the Rest of the world zone's, which WooCommerce only uses for addresses no other zone covers. They now start from the zone your store address is in. The Dashboard lists each zone's threshold when they differ, and Setup warns you when your own zone has no free shipping at all.
- Fixed On a phone the message gets the width of the screen. In the Gradient, Milestones and Delivery van templates it was squeezed into a narrow column beside the progress track. The track now has a row of its own underneath, as in Classic, which is also shorter than it was. The Floating pill does the same, and Centred's close button no longer sits on top of the last word.
- Fixed "On product pages" no longer pulls the Add to cart button away from the quantity box on block themes. The notice now sits under the whole add-to-cart form.
- Fixed A threshold you type yourself now follows the shopper's currency with WooCommerce Multilingual (WPML), FOX Currency Switcher, CURCY and Aelia Currency Switcher. A euro shop's 50 was shown to a dollar shopper as $50. Developers can adjust the threshold with the new
trfs_thresholdfilter, and the shopper's progress withtrfs_goal. - New A Results panel on the Dashboard puts your orders since the bar was turned on beside the orders from as many days before it, up to 30 days each: how many there were, the average order, and how many reached your free shipping threshold. It reads WooCommerce's own order records, so nothing about your shoppers is tracked. If the bar was turned on before this version, it compares the last 30 days with the 30 before them.
- Improved Admin screens are easier to read: faint help text and switched-off toggles now meet WCAG AA contrast.
- Improved Admin forms work better with screen readers and voice control. Each help line is read out with its field, the token buttons are named by the token they insert, and the template, threshold source and shipping class choices are named groups.
- Improved After this update the plugin empties your page cache once, so cached pages pick up the new bar straight away.
- Improved Checkboxes show a clear focus ring when you reach them with the keyboard, and the tick in a ticked box draws correctly on phones.
- Improved A page rule that names a particular page or category now also applies to its translations under WPML or Polylang, and each group of ticks in the page rules is announced by name to screen readers.
- Improved With several Traslatability plugins on one site, their bars and buttons no longer land on top of each other. A shipping bar and a share bar at the foot of the screen stack one above the other, and a prize-wheel launcher, a contents button and a dark mode button in the same corner stand one above the next.
1.5.35
- Fixed "In the mini cart" now works with the Mini-Cart block that block themes put in the header. The bar appears in the cart drawer, under its title and above the products, and keeps up as the shopper changes a quantity, removes something, or adds more from the shop. Until now it only appeared in the dropdown of the classic Cart widget. The setting's description now names both.
- Fixed On block themes, the floating bar and any shortcode bar now keep up when the cart is changed from the Mini-Cart block or from an Add to cart button in the shop, instead of showing the cart as it was when the page loaded.
- Fixed The bar across the top of the page no longer covers the title of WooCommerce's cart drawer while it is open. It steps behind the drawer and comes back when the drawer closes.
1.5.34
- Fixed A cart change no longer swaps in the wrong kind of bar. On the cart and checkout pages the floating bar turned into the in-page notice as soon as WooCommerce refreshed the totals — losing its place at the top or bottom of the screen, its close button, and a shopper's decision to close it. And adding something to the cart from a shop page turned an in-page bar (a shortcode, or the notice under the add-to-cart button) into a second floating bar. Every bar is now refreshed as the kind of bar it is.
- Fixed The Floating pill and Card templates no longer block clicks on your header or footer. An invisible strip the full width of the screen sat either side of the bar, so the logo, the menu and the cart icon beside it could not be clicked. Only the pill or card itself takes clicks now.
- Fixed A shopper whose shipping zone has no free shipping is no longer shown another zone's threshold. A shop with free shipping in one country only told shoppers everywhere else to spend towards it, then that it was unlocked, while checkout charged them for shipping. The bar now follows the shopper's own zone and shows nothing where free shipping is not offered. Until a shopper's country is known, it uses the first zone that offers free shipping, as before.
- Fixed Free-shipping coupons count exactly as WooCommerce counts them. A coupon with "Allow free shipping" ticked made the bar say shipping was free even on a Free shipping method set to "A minimum order amount", which ignores coupons — and checkout charged. On a method set to "A minimum order amount AND coupon", the bar said free shipping was unlocked once the amount was reached, coupon or not. It now counts towards the amount, stands aside once the amount is reached without the coupon, and says free shipping is unlocked only when both are there. The Setup screen mentions the coupon.
- Fixed "On the cart page" and "On the checkout page" now work with the Cart and Checkout blocks, which new shops and block themes use. The notice appears above the block and keeps up as the cart changes. "In the mini cart" now says that it means the classic Cart widget, not the Mini-Cart block.
- Fixed Shops in another language no longer show shoppers English. Activation stored the English messages whatever the site's language, and stored wording outranks the translation, so a Spanish or French shop showed English although both languages ship with the plugin. Messages you have not edited now appear in your site's language, and on a network each site uses its own. Anything you wrote yourself is kept exactly as it is.
- Fixed The in-page bars now follow your Display rules. The notices on the cart, checkout and product pages and in the mini cart, and the shortcode, ignored the schedule, the signed-in and role limits, the excluded URLs and the screen sizes — so a bar meant for one week, or for one customer role with its own threshold, went on showing to everyone. Only "Display on" does not apply to them, because they are placed by their own switches, or by you.
- Fixed "Wait before showing" no longer hides the bar again every time the cart changes, and a bar that has gone after "Hide after" stays gone. The celebration plays once when the goal is reached, rather than again on every page after it.
- Fixed A bar with nothing to show when the page loaded — below "Minimum cart total to show the bar", say — now appears as soon as the cart qualifies, without a page load. One that disappears when the cart stops qualifying comes back when it qualifies again.
- Fixed Right-to-left languages: the message starts at the right, the progress fills from the right, and the Delivery van template's van drives right to left towards its parcel.
- New Messages you have written yourself can be translated with WPML String Translation or Polylang. They are listed under "Free Shipping Bar for WooCommerce" once you open or save the Bar screen, and each shopper sees their own language.
- Fixed Page rules: an excluded URL such as
/contact/now matches on a site installed in a subfolder or on a subdirectory multisite site; "Shop and product pages" now also covers brand and attribute archives; and a rule about the shop, cart or checkout is no longer turned into "Everywhere" while WooCommerce is switched off. - Fixed Activating the plugin from an older WP-CLI or a site-management tool could stop with a fatal error.
1.5.33
- Improved When more than one Traslatability plugin is waiting for its licence key, the admin shows one notice naming them all, each name linking to its own licence screen, instead of a separate notice per plugin at the top of every admin page. "Remind me later" quietens all of them for a week. An expired or revoked licence still gets a notice of its own.
- Fixed "Delete all data on uninstall" now also removes the licence key and the update records, which were left behind in the database.
- Fixed In the search-as-you-type picker, screen readers now hear "1 result" rather than "1 results".
1.5.32
- Fixed On a store with no shipping method set up, an empty cart told shoppers free shipping was available, and the bar then disappeared the moment they added something. WooCommerce reports that nothing needs shipping when there is no way to ship, and the bar already respected that for a full cart but not an empty one. With no way to ship there is no free shipping to offer, so the bar now stays hidden either way.
1.5.31
- Improved Controls greyed where the chosen template ignores them: Behaviour for the Edge line, Floating pill and Card templates, which place themselves; Icon for Centred and Edge line, which have no icon slot; and "Stay closed for" until shoppers are allowed to close the bar. The hints say where the close button and the empty-cart message do not appear.
- Improved A setting can now depend on another field simply being filled in — a date typed, a picture chosen — rather than only on it holding one particular value. Several screens in the range needed exactly that and had no way to say it.
1.5.30
- Improved Values arriving from the browser are now unslashed before use, the way WordPress expects. WordPress adds a backslash in front of every quote and apostrophe in a submitted value, and it is up to each plugin to take them off again. In most places here that changed nothing you could see, because the value was being cleaned in a way that discarded them anyway — but it is what WordPress's own plugin checker looks for, and it removes a whole class of quoting bug before it has a chance to appear.
1.5.29
- Fixed A user-role rule went on filtering after the screen stopped showing it. The role ticks on Display Rules appear only once "Signed in" is ticked, and whatever had been chosen before that carried on being applied from a panel nobody could see. A site that had once picked a role and then switched to "Signed out only" ended up with two rules cancelling each other out, one of them invisible, and nothing on the screen to explain why nobody was seeing anything. The rule now applies exactly when it is on show.
1.5.28
- Fixed A display rule about something the site no longer has was quietly destroyed. Post types, taxonomies and roles arrive with other plugins and leave with them, and the display rules were checked against whatever happened to be registered at that moment — on every save of every screen. Switch WooCommerce off, change a colour on an unrelated screen, save, and the rule about products was gone. Turning WooCommerce back on did not bring it back, and nothing had said a word. Such a rule is now kept, and shown on the Display Rules screen marked "(not available)" so it can be seen and unticked rather than sitting in the database where nobody can reach it.
1.5.27
- Improved Settings that depend on two answers at once now stay greyed out until both are met. Where one greyed group sits inside another, the inner one used to switch its own fields back on whenever its own condition was satisfied, whatever the group around it had decided. No screen in this plugin is arranged that way today; the safeguard is in place before one is.
August 2026 50 versions
1.5.26
- Fixed Shops installed before 1.5.25 kept showing shoppers the old "basket" and "delivery" wording. Activation seeds the five shopper messages into the database, and a saved message beats a default, so the rewording in 1.5.25 only reached new installs. The old defaults are now recognised — in English, Spanish and French — and replaced with the new wording. A message you wrote yourself is matched by none of them and is left exactly as it is.
1.5.25
- Improved Two words brought into line with WooCommerce. "Basket" is now "Cart" everywhere, including the message shoppers read: "Add {remaining} more to your cart and shipping is free." And "delivery" is now "shipping" — the plugin is called Free Shipping Bar and WooCommerce's method is called Free shipping, so the settings screen calling it free delivery was the odd one out. Only the wording changed; the thresholds, rules and templates are untouched.
- Fixed The Spanish translation said "cesta" on some screens and "carrito" on others. It now says "carrito" throughout, which is the word WooCommerce's own Spanish uses.
1.5.24
- Improved Every screen has been reworded to WordPress conventions. "Position" and "Behaviour" replace "Sits at the" and "And it should", the colour groups read "Before the goal" and "After the goal", and the setup screen reads "Enable the free delivery bar" and "Use the WooCommerce threshold". Nothing about how the bar works has changed.
- Improved Spanish and French translations updated to match.
1.5.23
- Fixed In the section bar's two-row layout, the first section now lines up with the plugin icon above it, and the sections fill the height of their row instead of sitting against the top edge.
1.5.22
- Fixed The section bar no longer breaks onto a second line when a plugin has several sections. It is two tiers by default — the plugin name and the Documentation button on top, the sections on a full-width row beneath — and collapses to one row where everything fits.
1.5.21
- Improved Field labels are shorter and every save button reads "Save changes", matching WordPress itself.
1.5.20
- Improved Every screen has been reworded to WordPress conventions. Section names, field labels and help text are shorter and say plainly what they do, and a save now answers "Settings saved." rather than describing what was saved. Nothing about how the plugin works has changed.
1.5.19
- Fixed The changelog inside the plugin listed only a handful of the releases there have been. It is generated from the same source as the one on the website now, so "View details" on the Plugins screen shows every release rather than stopping months ago.
- Improved Every changelog entry says what kind of change it is: new, improved, fixed or removed.
1.5.18
- Fixed Unticking the last box in a group of page rules now clears it, instead of coming back ticked after every save.
- Improved A page chosen in one list can no longer also be chosen in the other.
1.5.17
- Fixed A stylesheet a screen sends deliberately switched off is no longer switched on when you move between tabs.
1.5.16
- Fixed The floating Save button comes back after changing tabs. It appeared on a freshly opened screen and never again once you moved between tabs.
1.5.15
- Fixed A site that cannot reach the update server now waits a few minutes before asking again, instead of asking on every admin page load. Nothing changes when the server is reachable; pressing "Check again" still asks at once.
1.5.14
- Fixed Saving the Display screen no longer writes seventeen PHP warnings to the site's error log. Nothing was broken by them — the values they complained about are dropped by the sanitiser either way — but a screen that fills a log with noise on every save is a screen whose one real error nobody will spot.
1.5.13
- Fixed The progress fill barely showed against the groove it fills — 2.77 to 1, when the fill is the one thing the bar exists to show. It is a clearer teal now.
- Improved Saving now says what was saved. Every screen answered with the same word — “Saved.” — which tells you the one thing you already knew, that you pressed the button. Each screen names what it kept.
- Improved The confirmation message has no close button and more room at both ends: it leaves on its own after four seconds, and clicking anywhere on it dismisses it.
1.5.12
- Improved Confirmation and error messages are easier to see: rounder, and coloured by what they are saying — green for saved, red for something rejected, amber for something to look at — each with a mark of its own.
- Improved A licence message now looks like one. Activating a key answered in an unmarked grey box, whatever it said; it carries the right colour and a mark like every other message on the screen.
- Improved A licence key that could not be a key is refused on the spot, without a request to the licence server and without reloading the screen. An empty box used to mean a wait, and on an offline site it meant being told the licence server could not be reached.
- Improved A key pasted out of an email in lower case, or with the dashes lost, is put right rather than reported as wrong.
1.5.11
- Fixed Confirmation messages line up properly and sit on rounder corners: they were top-aligned with the text nudged down two pixels to meet the icon, which on a one-line message read as a misalignment because it was one.
1.5.10
- Improved Confirmations are easier to see. The message after a save is bordered in the colour of what it is telling you, sized to the words rather than stretched to a fixed card, and it now says what was saved rather than just "Saved".
- Improved It stays for four seconds instead of three — long enough to read a sentence — and hovering it holds it open.
1.5.9
- Improved Tab changes are instant. The plugin's other screens are fetched quietly in the background while you read the first one, so by the time you click a tab there is nothing left to wait for — tens of milliseconds instead of a second and a half.
- Improved One at a time, never in parallel, started only once the screen you are on is ready and the browser says it is idle, stopped the moment you navigate, and skipped entirely on a metered connection.
1.5.8
- New An admin that never reloads. Every screen arrives without a page load and every save happens where you are standing — and the screen you are heading for is usually already fetched, because moving a pointer to a menu item takes long enough to fetch it.
- New Saved, and told so where you are looking. A save answers in a small message in the top-right corner that clears itself after a few seconds, instead of reloading the page and putting a notice above the header.
- Improved It is an enhancement, not a dependency: if a fetch fails or scripting is off, links navigate and forms submit exactly as they always did, and the server side is unchanged.
1.5.7
- Improved Notices redesigned: a quiet bordered card at 14px with the tone carried by a tinted icon, rather than a block of colour in coloured type.
1.5.6
- Improved Every notice this plugin prints now looks the same: a white box with a coloured rule down its edge — orange for something to do, red for something wrong, green for something that worked. WordPress tinted a warning cream and an error pink and gave each one its own border colour, so a few notices in a row read as a few different kinds of box.
- Fixed The message on the licence screen after activating or deactivating a key now stays where it is printed, rather than jumping down the page a second after the screen has loaded.
1.5.5
- Fixed A notice from this plugin no longer jumps after the page has loaded. WordPress lifts any notice out of the page once it is ready and drops it under the page heading, so the screen settled and then everything below moved by the height of a notice — and painted once in WordPress's colours before ours arrived. Ours stay where they are put, styled from the first paint.
1.5.4
- Improved Tooltips are ours rather than the browser's. They appear the moment you hover or focus instead of after a second, they are styled like the rest of the screen, and somebody using a keyboard gets them too. That covers the message tokens and the copy button beside a shortcode.
1.5.3
- Fixed "Excluded pages" threw away every exception but the first. The field posts its choices as one line, and the code that read it back only knew how to split that line in one of the two shapes it arrives in — so choosing two pages to keep it off kept it off neither. It has been that way since the display settings were rebuilt. One choice always worked, which is why it went unnoticed.
- Fixed A place could be chosen and ruled out at the same time when the choice came from a preset. "The front page only" left the front page tickable under Quick exclude, which is a rule that cancels itself. The preset now greys out the places it chose, and the setting is refused on save even if the form says otherwise.
- Fixed A place ticked under Quick exclude could not be unticked. It was written into the field below it as well, and that field posted it straight back on the next save. Named places belong to the ticks now, and individual pages and categories to the field, so nothing is written down twice.
- Improved User roles appears once Signed in is ticked, rather than sitting there inviting a rule that can never match: a role is something only a signed-in visitor has.
1.5.2
- Improved The display settings are laid out in two columns throughout, with no column left empty.
1.5.1
- Improved The display settings are laid out in two columns: what it shows on and who sees it on the left, what it is kept off and when on the right, so the pair can be read against each other.
- Fixed A place could be ticked both as somewhere to show and somewhere to exclude, which is a rule that cancels itself. Ticking one now greys out the other, and the setting is refused on save even if the form says otherwise.
1.5.0
- Improved The display settings are one structure now, the same in every plugin: a preset for the common answers, tick lists for the places, kinds of content and archives, and searchable fields for the exceptions.
- New Common exclusions ticks the places most often left out. They and the search field are one list, not two settings that can disagree.
- New Excluded URLs takes paths with a
*wildcard, so a whole section can be excluded without naming every page in it. - New Audience limits by screen size, by whether a visitor is signed in, and by role — the role list is your own site's.
- New When gives it a window: dates, days of the week and hours, worked out against your site's clock.
- Improved Every list is built from your own site. A site without WooCommerce is never offered a rule about a checkout it does not have.
- Improved Your existing settings are carried across; nothing needs re-doing.
- New The documentation and knowledge base cover all of it.
- Improved The separate Devices and Audience settings have moved into Audience, where the rest of the question lives.
1.4.0
- Improved Where it shows is now ticks first, exceptions second. Tick the places, the kinds of content and the archives it belongs on — every list built from your own site, so a custom post type of yours is already there — then name the exceptions by searching for them.
- Improved "But never on these" always wins, and only offers what is inside your ticks, so an exception can never be a rule that does nothing. Named places like the basket and the checkout are always offered.
- Improved Your existing settings are carried across; nothing needs re-doing.
- Improved The documentation and knowledge base have been rewritten to match.
1.3.0
- Improved Where a thing shows is now chosen by name, not by ID. Pick pages, posts, products, categories, tags or a named place — the basket, the checkout, the shop, the front page, search results — and say either "everywhere except these" or "only these". An exclusion always wins.
- Improved The same vocabulary is used by every Traslatability plugin that asks the question, so you learn it once.
- Improved Your existing settings are carried across; nothing needs re-doing.
- Improved The seven fixed "keep it off" tick boxes and the box for page IDs are gone; anything they could say, the new rules say, and a great deal they could not.
- Improved An exclusion now also silences the in-page notices on the basket and checkout. "Never here" means never.
1.2.9
- Fixed The shortcode chip in a list is drawn as one object again — it had become a line of text with a copy icon adrift after it — and copying now turns it the same soft green as everything else that has gone well, rather than outlining it in dark green.
1.2.8
- Fixed The shortcode boxes are drawn properly now. WordPress paints every piece of inline code with its own grey background, which put a second box inside ours; a long shortcode was also cut off at the edge rather than wrapping, so you could not read the end of what you were about to copy.
1.2.7
- Improved Every dropdown now draws its own arrow. A native select is nearly invisible against our surface on macOS and sometimes has no arrow at all elsewhere, so a dropdown could read as a text box — and a text box invites typing rather than clicking.
- Improved A shortcode is copied by clicking it. It used to be text to select by hand, which is a small tax on the one thing you came to the screen for.
1.2.6
- Improved WordPress's own plugin details window now says what the plugin is, not only what changed in the last version.
1.2.5
- Fixed Settings screens lay out in two columns again. The rule that puts panels side by side was in two other plugins and never in the shared stylesheet, so a screen written for two columns rendered as one long one.
1.2.4
- Fixed A colour field is one row again — a swatch and its value. Every one of them was showing its hex box and a Clear button at all times, because a rule meant for the opened picker was overriding the one that keeps them shut, so a screen of colours read as twice as many controls as it had.
- Fixed Each swatch shows its own colour value instead of all of them saying “Select Color”.
1.2.3
- Fixed The colour picker is laid out properly once opened — the hex box and Clear sat hard against the swatch button and each other with no spacing at all.
- Fixed The plugin mark in the section bar is versioned by file time, so a redrawn icon actually reaches you instead of the browser serving the one it cached first.
1.2.2
- Improved The plugin icon has lost the decorative braces that used to sit either side of the mark — on this one they ran straight through the bar. The mark is drawn larger in their place.
1.2.1
- Fixed The section bar no longer scrolls sideways when the window is narrow, and no longer raises a stray scrollbar over itself.
- Improved The licence chip has gone from the bar — Licence is still a click away in the nav beside it.
- Fixed The Placement panel now sits clear of the two columns above it instead of touching them.
1.2.0
- Improved The Bar screen is built around its preview: the preview sticks to the top of the page and the template and colours sit side by side beneath it, so choosing a colour and seeing what it did is one glance instead of a scroll up and back.
- Improved Wording: the token list is now a row of chips that drop the token straight into the message you are editing, and the five messages sit three abreast.
- Improved "Milestone segments" appears only when the Milestones template is chosen — no other template draws segments.
- Improved "Threshold" is greyed rather than silently ignored unless you have chosen to type an amount.
1.1.0
- Fixed The bar no longer hides behind the WordPress admin bar when you are signed in.
- New follow the screen. Choose whether the bar scrolls away with the page, sticks to the top as the shopper scrolls, or floats over the page.
- Improved The Threshold box is now disabled unless you have chosen to type your own amount, so it is clear which setting is in charge.
1.0.9
- Improved Tidier preview: dropped the caption and the state buttons, which only changed the preview and read like settings that were not saving.
1.0.8
- New Choose your icon. The on/off switch is now a dropdown: follow the shopper's progress (basket → van → tick), pick one icon and keep it, or turn it off.
- Improved The "keep it off" page rules sit several to a row instead of one per line, so the Display screen no longer runs on.
- Fixed Switches line up with the fields beside them across Placement and Behaviour, rather than floating in empty space.
1.0.7
- Improved Tidier Placement section: the delivery icon switch now lines up with the field beside it instead of floating in empty space.
1.0.6
- Improved Clearer section bar: larger, darker labels and icons, and it now stays in place instead of following the page as you scroll.
- Fixed Summary tables read as two columns again rather than stacking each value under its label.
1.0.5
- Improved Bigger, clearer admin type throughout, and larger controls to match — easier on the eyes on a long settings page.
1.0.4
- Improved Easier on the eyes: slightly larger text, clearer colours and bigger buttons throughout the admin. Shorter plugin name in the menu and plugin list.
1.0.3
- Improved Simpler setup. The free delivery goal and the on/off switch now lead, on a single Setup screen — they are what you need first, and they used to be spread across two tabs.
- Improved Wording moved in alongside the design on Bar, so you can see the preview while you write it. Four screens are now three.
1.0.2
- Fixed A bar a shopper has closed no longer flashes on screen before disappearing, and pausing the bar now stops it everywhere. The licence reminder now sits at the top of the screen instead of halfway down some WooCommerce pages.
1.0.1
- Improved The bar now lines up with your theme's own content width, so its message starts level with your site title instead of floating in from the edge.
- Improved On every template the message fills the row and the progress sits on the right, rather than bunching on the left.
- Improved An empty basket shows a basket icon; the van is for when one is on its way.
- Improved Shorter admin menu label, so it no longer wraps onto three lines.
- Fixed The licence screen is now translated in Spanish and French too.
1.0.0
- New First release. Shows shoppers how close their basket is to free delivery, so more of them add one more thing.
- New Reads the threshold from your own WooCommerce free shipping method, and measures the basket the way WooCommerce does — the bar and the checkout can never disagree.
- New Eight designs: classic, centred, edge line, floating pill, card, gradient, milestones and a delivery van that drives along the track.
- New Your colours and font, with a live preview that is a real bar rather than a picture.
- New Updates the instant the basket changes, on both the classic cart and the block cart and checkout.
- New In-page reminders on the basket, checkout, product page and basket dropdown, plus a shortcode.
- New Built to be usable by everyone: a live region for screen readers, a real progress bar, a keyboard-operable dismiss, and animation that respects "reduce motion".
- New Works on WordPress Multisite, per site or network-wide.
Pricing
Every plan includes every feature. Choose how many domains, and whether to pay yearly or once.
Pay yearly renews until you cancel
1 domain
One year of updates and support
5 domains
One year of updates and support
Unlimited domains
One year of updates and support
Pay once (lifetime) no renewals
5 domains
Updates and support for as long as we publish it
Unlimited domains
Updates and support for as long as we publish it
- Every plan includes every feature. You choose only the number of domains.
- 30-day refund, no reason needed. Refund policy
- Licence key and download straight after payment, by Stripe.
- A lapsed licence stops updates and support. It never switches a feature off.
- Local, development and staging copies are free and do not count against your domains.
- Yearly plans renew at the then-current price until you cancel. Cancel any time from your account.
- Where tax applies it is calculated at checkout and shown before you pay.