WooCommerce fixes / free shipping not showing

WooCommerce Free Shipping Not Showing? Causes & Fix

You've set up Free Shipping, the customer qualifies, and it still doesn't appear at checkout. Almost always it's a condition on the method that isn't being met — and there are only a handful of them. Here's how to find yours.

Last updated: 16 Jul 2026 · ~6 min read

Quick answer

The usual cause is that your Free Shipping method requires "a valid free shipping coupon", but the coupon doesn't have Allow free shipping ticked. The two settings are in different screens and have to agree. Open Marketing → Coupons, edit the coupon, and tick Allow free shipping under the General tab. The other common cause: Free Shipping isn't in the zone the customer actually matched.

What's actually happening at checkout

Free Shipping isn't a discount — it's a shipping method, and it only offers itself when two things are true. First, it has to live in the shipping zone the customer's address matched. Second, whatever condition you set on it (a coupon, a minimum spend, or both) has to be satisfied. Fail either and WooCommerce doesn't warn you. The method simply isn't in the list.

From the customer's side that reads as "your free shipping offer is broken" — they applied the code, they see the discount land, and shipping still costs money. That specific combination — coupon works, shipping still charged — is the fingerprint of the number-one cause below.

The most common causes (most likely first)

  1. The method requires a coupon, but the coupon doesn't grant free shippingThe coupon applies cleanly and the discount lands, but shipping is still charged. Two separate settings have to agree: Free shipping requires… on the method, and the Allow free shipping checkbox on the coupon itself (Marketing → Coupons → edit → General). Ticking the discount is not enough.
  2. Free Shipping isn't in the zone this customer matchedThey're offered a paid rate instead of nothing — so they did match a zone, just not the one you added Free Shipping to. Zones are checked top to bottom and the first match wins, so a broad zone sitting above a narrow one swallows it. Check WooCommerce → Settings → Shipping.
  3. The method is in the right zone but toggled offThe Free Shipping row is visible in the zone — which is why it's so easy to skim past — but its enabled toggle is grey. It was added and never switched on, or switched off during testing.
  4. The minimum order amount isn't actually metThe cart looks like it clears your threshold but doesn't. The minimum is compared against the cart subtotal — not including shipping — and whether coupon discounts come off before the comparison depends on the Apply minimum order rule before coupon discount checkbox on the method. A £5 code on a £52 cart against a £50 threshold flips it.
  5. The requirement is set to "minimum order amount AND a coupon" when you meant ORFree shipping works for nobody, or only for the rare customer who happens to do both. Reread the Free shipping requires… dropdown — AND and OR are adjacent options and one word apart.
  6. You're looking at stale shipping rates in your own sessionIt works in a private window but not in the browser you've been testing in. Rates are cached per-session, so a settings change you just made isn't reflected. Clear it under WooCommerce → Status → Tools, or just test in a fresh private window.

Where to look first

Tired of testing this in incognito windows?

The reason free shipping is annoying to debug is that the answer is never in one screen — the method's condition lives in the shipping zone, the flag that satisfies it lives on the coupon, and a stale session quietly lies to you about both. DiagnosticIQ's free dashboard reads your zones, your Free Shipping conditions and your coupons' free-shipping flags together, and points at the one that disagrees. And it keeps watching, so a zone edit next month doesn't silently kill the offer.

Get the free plugin

Made by Prima Digital — the team behind this guide. Free forever; no card to install.

How to know you fixed it

Verify

In a fresh private window, build a cart that qualifies and apply the code — Free shipping should appear in the shipping options and the shipping total should drop to zero.

Frequently asked

Do I have to honour free shipping for customers it failed for?

That's your call, not WooCommerce's — but the orders went through at the price shown, so nothing is broken on those orders. Fix the setting, then decide whether to refund the shipping.

Does the coupon need a discount amount to grant free shipping?

No. A coupon with a zero amount and Allow free shipping ticked is a perfectly valid free-shipping-only code.

Why does free shipping show alongside paid rates instead of replacing them?

That's default behaviour — WooCommerce offers every method that qualifies. Hiding the paid rates when free shipping is available takes a snippet or a plugin.

Does the minimum order amount include tax and shipping?

It's compared against the cart subtotal, not the total — shipping isn't counted. Whether tax is included follows how your prices are entered, so test with a real cart rather than assuming.

>_
John O'Keane — Founder, Prima Digital · LinkedIn
Contributions by David Zhang · LinkedIn
I build DiagnosticIQ, the WooCommerce diagnostic plugin, and I've lost an embarrassing amount of my life to free shipping offers that were one unticked Allow free shipping checkbox away from working.