Free Shipping Progress Bar for WooCommerce – Increase Cart Value
Show shoppers how much more to spend for free shipping with a live progress bar in the cart, checkout, mini cart and product pages.
WooCommerce shipping is built from zones, methods and classes. Learn how zones are matched, how flat rate, free shipping and local pickup work, and how to set up a store for Saudi Arabia and the GCC.
WooCommerce shipping settings are built from three pieces: shipping zones (where you ship), shipping methods inside each zone (how you charge) and, optionally, shipping classes (which products cost more to send). A customer's address matches one zone, and only that zone's methods appear in the cart and at checkout. This guide follows the official documentation as checked in October 2026 (the WooCommerce 11.2 series), then sets up a store for Saudi Arabia and the Gulf.
In short
Everything starts at WooCommerce > Settings > Shipping, which lists your zones and has sections for Shipping settings, Classes and Local pickup. Check WooCommerce > Settings > General first: Shipping location(s) decides which countries you can ship to at all, and the zones documentation lists it as a prerequisite.
WooCommerce checks zones from the top of the list down, and the first match wins. The documentation says to order them from the smallest area to the largest: city, then state, then country. A broad zone above a narrow one stops the narrow one from ever being reached.
If nothing matches, customers see a "No shipping options are available for this address" message.
Add a method at WooCommerce > Settings > Shipping > Shipping zones: click Edit on a zone, then Add shipping method. The first enabled method in a zone is selected by default, so drag methods into the order you want.
The flat rate method has a name that customers see, a Tax status and a Cost for the whole cart. When shipping classes exist, a cost field appears for each class, and class costs are added to the main cost. The Calculation type decides what a mixed cart pays: Per class charges each class, Per order charges only the most expensive one. To charge by class only, set the main cost to zero. The Cost field accepts formulas, for example:
10 + ( 2 * [qty] )That is 10 plus 2 for every item.
The free shipping method offers five requirements: none, a valid free shipping coupon, a minimum order amount, a minimum or a coupon, and a minimum and a coupon. The checkbox "Apply minimum order rule before coupon discount" decides whether the threshold is tested before or after a coupon; unticked, the total after the discount counts. Coupons are created at Marketing > Coupons with Allow free shipping ticked.
The documentation does not say whether the threshold includes tax, so test carts on either side of the line. Core free shipping cannot exclude products by shipping class. In WooCommerce 9.9 and later, "Hide shipping rates when free shipping is available" hides the other rates once free shipping applies.
The Free Shipping Progress Bar for WooCommerce plugin on DevMarket shows a progress bar toward free shipping in the cart, checkout, mini cart and product pages, and its page says it reads your free shipping minimum by default.
WooCommerce has two local pickup options, and the documentation recommends using only one. The block-based option is at WooCommerce > Settings > Shipping > Local pickup. It needs the Checkout block and at least one pickup location, is not tied to zones and taxes by the chosen location's address. The legacy option is a zone method, so pickup can be limited to chosen zones.
Classes group products that cost different amounts to send, such as bulky items and small ones. The documentation says they cannot offer rates themselves: they give a method something to charge against. If every product ships for the same price, skip them.
The product editor's Shipping section (weight and dimensions) appears for simple and variable products that are not Virtual, with units set at WooCommerce > Settings > Products > General. According to the troubleshooting page, these values do not drive the built-in rates, but carrier extensions may need them, as do rate-table extensions such as Table Rate Shipping, which lists weight among its conditions. A cart with only virtual products shows no shipping options.
Under WooCommerce > Settings > Shipping > Shipping settings, the settings overview lists three groups:
On the cart page, customers press Calculate Shipping to see their zone's methods. Keep Cart, Checkout and My account out of any page cache: see our speed guide.
WooCommerce says its built-in shipping does not include live carrier rates or label printing. Paid carrier extensions fill the gap (the troubleshooting page names UPS, USPS, FedEx and Royal Mail), and the WooCommerce Shipping extension for labels is currently offered to stores based in the United States that use US dollars, so it does not suit a Saudi store. Many Gulf stores start with flat rates per zone, then add a courier's own plugin or API. Our guide to shipping and cash on delivery in Saudi Arabia compares courier types, explains the National Address and lists what to ask in a quote.
Cash on delivery can be limited to chosen shipping methods with its "Enable for shipping methods" setting. Core shipping offers no choice of delivery date or time: the delivery slots guide covers what a slot system needs.
The costs below are an example with made-up numbers. Your courier's quote decides yours.
| Mistake | What happens | Fix |
|---|---|---|
| Broad zone above a narrow one | The narrow zone is never reached | Reorder smallest to largest, and heed the 11.1 warning |
| No plan for the rest of the world | Customers see "no shipping" or an unintended rate | Add methods or leave it empty on purpose |
| Forgetting tax on shipping | Delivery is taxed, or not, by accident | Check each method's Tax status and the Shipping tax class |
On flat rate and the legacy pickup method, Tax status decides whether the cost is taxed, and None stops tax on shipping. If it is taxable, the Shipping tax class setting under WooCommerce > Settings > Tax picks the rate. Whether delivery carries VAT is for ZATCA and your accountant to say: see the tax and VAT guide.
Common causes: an address that matches no zone while the rest of the world is empty, a zone with no enabled method, a virtual-only cart, an unmet free shipping condition, or a country missing from Shipping location(s). Debug mode shows the matched zone on the classic cart page.
Not with the built-in methods, which charge per cart, per item, by a percentage fee or by class. Rate-table and carrier extensions add weight-based rules.
Add free shipping to the zone, set "Free shipping requires" to a minimum order amount, enter it, choose how coupons count, and test either side of the line.
Only if different products should be charged differently.
Try the steps on a staging copy, then send one real parcel. For the wider store, read how to set up WooCommerce and WooCommerce payment gateways, and browse WooCommerce plugins on DevMarket.
The software this guide talks about, ready to look at.
Show shoppers how much more to spend for free shipping with a live progress bar in the cart, checkout, mini cart and product pages.
Fix the WordPress critical error and white screen of death calmly: back up, read the logs, find the cause by elimination, then handle database, 500, memory, maintenance mode, 404 and login errors.
9 min read
Choose a WordPress theme by testing, not by demo. Compare block and classic themes, sources, speed, accessibility, RTL support, WooCommerce, builder lock-in and licence terms on a staging copy.
9 min read
Use this WordPress maintenance checklist to plan weekly, monthly and yearly tasks: updates, backups, users, plugins, security, speed, PHP, domain and SSL, plus Site Health and WooCommerce checks.
9 min read
Every item on DevMarket has a human-reviewed release, an instant licence key and clear update and support terms.