More fixes

WooCommerce "No shipping options were found"

A customer adds something to the cart, types their address, and the cart or checkout says "No shipping options were found for [address]" or "There are no shipping options available. Please ensure that your address has been entered correctly". They cannot place the order, and you only find out when someone emails you or sales stop. Almost always the shop has no shipping method that matches that address and those products. Below is a rebuilt example (not a real client), the two checks that find the cause, and the fix for each one.

Checkout

What the checks found


  

Check 1: which zone does the address land in?

Open WooCommerce > Settings > Shipping > Shipping zones. WooCommerce reads the list from the top and uses the first zone whose regions match the customer's address (country, state, or ZIP / postcode). Only the methods in that one zone are offered. If no zone matches, the "Rest of the world" zone at the bottom is used (it may be called "Locations not covered by your other zones"). Take the address that failed and work out which zone it hits first, and whether that zone has at least one enabled method.

Check 2: turn on shipping debug mode

Go to WooCommerce > Settings > Shipping > Shipping options (sometimes Shipping settings), tick Enable debug mode and save. Then, logged in as an admin, add the same product to the cart and enter the failing address. The cart now shows which zone matched and which methods were checked. This also turns off WooCommerce's shipping cache while it is on, so a cached answer cannot fool you. Turn it off again when you are done.

What each answer means

What you seeCauseFix
Debug shows "Rest of the world" (or no zone) for an address you do ship toThe address matches no zone: a ZIP code range typed wrong, a state missing from the region list, or the customer's country not addedEdit the zone and add the missing country or state. ZIP ranges use 90210...90299 (three dots) and wildcards like 902*, one per line. Then test that exact address again
The right zone matched, but it lists no methods, or the method's switch is offThe zone exists but has no enabled shipping methodOpen the zone, click Add shipping method, add Flat rate (or Free shipping / Local pickup) and make sure its toggle is on
A small zone higher up (for example "Local delivery: 3 ZIP codes") catches addresses meant for a bigger zone below itZone order: the first match wins, even if it only has Local pickup or a method with conditions the cart does not meetDrag the zones so the most specific ones (ZIP lists) are at the top and broad ones (whole country) below, and give every zone a method that always applies
Only Free shipping is in the zone, and it fails for small cartsFree shipping set to "requires a minimum order amount" or "a valid free shipping coupon"; below that, there is nothing to offerAdd a Flat rate method next to Free shipping so carts under the minimum still have an option. To hide the flat rate when free shipping applies, use a small snippet or plugin, not by removing it
Fails only for some products; those products have a shipping classThe Flat rate method has a cost per shipping class and the product's class has none, or a plugin hides methods for that classIn the Flat rate settings, give every shipping class a cost (0 is fine). Check the product's Shipping tab: class and weight. A plugin such as conditional shipping or "hide methods" can also remove the only method: check its rules
You use live rates (UPS, FedEx, USPS, ShipStation, Canada Post) and the methods are blankThe carrier returned nothing: the product has no weight or size, the account key expired, or the carrier's API refused the requestGive every product a weight and dimensions, reconnect the carrier account, and read the carrier plugin's log in WooCommerce > Status > Logs. Add a Flat rate fallback so a carrier outage does not block every order
Physical products, but only some carts fail after a product editA product is ticked Virtual or Downloadable by mistake, or a mixed cart has one product in a class no method coversUntick Virtual on physical products, set the class and weight, and test a cart with only that product
Worked yesterday, fails today with no settings change; works when logged in as adminA cached cart or checkout page, or WooCommerce's stored shipping rates for the sessionExclude cart, checkout and my-account from every cache (plugin, host, Cloudflare), then clear WooCommerce transients in WooCommerce > Status > Tools. See WooCommerce checkout not working
"Please ensure that your address has been entered correctly" even for a correct addressThe shop ships to fewer countries than the customer can pick, or "Ship to specific countries" leaves theirs outCheck Settings > General: Selling location(s) and Shipping location(s). Every country you ship to must be in both, and in a zone

Check it worked

Log out (or use a private window), add each kind of product to the cart, and enter one real address from every zone you serve, including one under any free-shipping minimum. Each should show at least one shipping price. Then turn debug mode off again.

What not to do

Most of these take ten minutes once you know which one it is. If you would rather someone else finds and fixes it, that is what the box below is for. Related: WooCommerce checkout not working and orders stuck on Pending payment.