Skip to content

WordPress maintenance

WooCommerce “No shipping options were found”? Check which zone matched

In short

WooCommerce says "No shipping options were found" when the buyer's address matches no zone with a shipping method, or matches a zone whose method gives no rate. Turn on shipping debug mode to see the matched zone, then add the missing rate. In our 13 Oct 2026 lab, one catch-all rate turned a refused order into a $35.00 one.

Key points

  • Of the pages we tested, only the classic cart says "No shipping options were found for" the address. The Checkout block says "No shipping options are available for this address".
  • Neither checkout placed the order, and the total stayed at $20.00 with no shipping line.
  • Debug mode names the matched zone, but on both checkouts it showed the store's own zone until we reloaded the Checkout block.
  • A $15.00 rate in "Locations not covered by your other zones" fixed it. A United States zone fixed Ohio but not Toronto.
On this page (10)
  1. Why does WooCommerce say “No shipping options were found”?
  2. How did we test it?
  3. What does each page say when there are no shipping options?
  4. How does debug mode show which zone matched?
  5. Why did the checkout name the wrong zone?
  6. What if the right zone matched and there are still no options?
  7. How do you fix “No shipping options were found”?
  8. What did we not test?
  9. Are buyers stuck at your checkout right now?
  10. Questions and answers

Why does WooCommerce say “No shipping options were found”?

WooCommerce says “No shipping options were found” when it has no rate for the buyer’s address. Either the address matched no zone with a shipping method, or it matched a zone whose method worked out no rate.

The buyer cannot pay, and no order is created. Nothing under Orders tells you a sale was lost.

Checkout faults like this are one of the fixes on our WordPress care and fixes page, next to a payment fault we rebuilt on a test store.

How did we test it?

On 13 Oct 2026 we built a store on WordPress Playground with WordPress 7.1.3, WooCommerce 11.2.1 and PHP 8.3.33. It was based in Michigan and sold one $20.00 mug with no weight and no shipping class.

Its only zone, Michigan, had a $7.50 flat rate. The catch-all zone, “Locations not covered by your other zones”, had no method. A script drove headless Chromium through the cart and both checkouts as a guest in Columbus, OH 43215.

What does each page say when there are no shipping options?

Each page has its own sentence:

PageWhat the buyer saw
Classic cart“No shipping options were found for Columbus, OH 43215.”
Classic checkout“There are no shipping options available. Please ensure that your address has been entered correctly, or contact us if you need any help.”
Checkout block“No shipping options are available for this address. Please verify the address is correct or try a different address.”
Place order, classic“No shipping method has been selected. Please double check your address, or contact us if you need any help.”
Place order, block“Sorry, this order requires a shipping option.”

The Checkout block was the checkout page on our new store, and it never shows the cart sentence. An owner who searches the words on their own checkout may never see this phrase.

How does debug mode show which zone matched?

Tick Enable debug mode in WooCommerce, Settings, Shipping, Shipping settings. A notice then names the zone, and for our Ohio buyer the cart said: Customer matched zone “Locations not covered by your other zones”.

WooCommerce’s troubleshooting doc for core shipping says the setting also skips the rate cache, and that shoppers see the notice, so switch it off afterwards.

That line splits the problem in two. The catch-all zone means no zone covers the address. A named zone means the zone is right and its method is the problem.

Why did the checkout name the wrong zone?

Both checkouts told us the Ohio buyer matched “Michigan”, the store’s own zone.

The notice is printed when the page loads, before the buyer types an address, so it showed the store’s base address. After a reload the Checkout block named the catch-all zone, which was right. The classic cart was right first time, because its shipping calculator reloads the page.

WooCommerce’s doc says not to rely on the notice appearing on the checkout pages. Our lab found it can appear and still be wrong. Read it on the classic cart, or reload the checkout once the address is in.

What if the right zone matched and there are still no options?

Then the method gave no rate. We set the Michigan flat rate to charge by shipping class only: Cost blank, a “Bulky” class at $12.00, “No shipping class cost” blank. The mug had no class.

A Detroit, MI 48226 buyer matched “Michigan” and still saw the no-options message. In WooCommerce 11.2.1 a flat rate is only offered when at least one cost applies (class-wc-shipping-flat-rate.php, line 223).

Giving the mug the Bulky class brought back Flat rate at $12.00. Filling in “No shipping class cost” is the other route, which we did not test.

How do you fix “No shipping options were found”?

Give every address a rate. We added a $15.00 “Flat rate (rest of world)” to “Locations not covered by your other zones”, which WooCommerce’s shipping zones guide calls the Rest of the world zone.

The Ohio buyer saw it at $15.00, and guest order #15 went through: mug $20.00, shipping $15.00, total $35.00.

A wider zone also works, up to a point. We swapped that rate for a “United States” zone with a $9.50 flat rate, below Michigan. Zones are checked top down and each customer matches one, so Ohio matched “United States” and order #16 came to $29.50. A Toronto, ON address then fell through to the empty catch-all zone and got the no-options message again.

This is a fix we do as a one-off job. We check out from an address in each place you ship to, read the matched zone, and add the missing rate on a copy of the store first.

Tax follows the shipping address by default too, which we tested in why WooCommerce charges no sales tax on a fresh store.

What did we not test?

  • Weight-based and table-rate shipping, which come from plugins.
  • The “Ship to specific countries” setting and postcode-range zones.
  • Local pickup, the Cart block, caching plugins and live carrier rates.

A buyer who gets through checkout but never hears back is a different fault, traced in WooCommerce not sending order emails.

Are buyers stuck at your checkout right now?

Send us the message your checkout shows and one address that fails, and we will tell you which zone it matched and which rate is missing.

Where did these facts come from?

Questions and answers

Why do some addresses get shipping and others get no options?

Each address matches one zone, the first from the top that covers it. In our lab Detroit matched the Michigan zone and got $7.50, while Columbus, Ohio fell to the catch-all zone, which had no method.

Where do I turn on WooCommerce shipping debug mode?

In WooCommerce, Settings, Shipping, Shipping settings, tick Enable debug mode and save. Turn it off afterwards, because shoppers see the notice too.

Does a United States zone cover buyers in Canada?

No. In our lab a Toronto address skipped the United States zone and got the no-options message again.

Still stuck? Send us the page address and what you see