WooCommerce Shipping Not Working
If WooCommerce shipping is missing or shows the wrong rate, check the address, matching zone and cart together. Start with one repeatable case, then test the rule’s boundaries.
Read the guide
Search Field Notes
A useful next read.
36 field notes
No matching guide yet. Try “checkout”, “shipping” or “catalog”.
All Field NotesWrite down the cart and expected delivery choice
Use a representative test address and the exact cart that fails: product/variation, quantity, discount and any mixed product types. Record what you expected and what appeared. “No shipping options” and “the carrier quote is too high” need different checks.
Confirm the delivery policy with the business before editing settings. An unsupported destination should remain unsupported. If the store sells virtual products, the absence of shipping may also be intentional. The aim is to make the configured rule match the offer, rather than force a delivery choice into every possible cart.
Check which shipping zone wins
Open WooCommerce → Settings → Shipping → Shipping zones. Zones are matched from top to bottom, and the first matching zone supplies the methods. A broad national zone above a local postcode zone can prevent the local zone from being used.
Check the regions and postcode restrictions, not just the zone names. Order narrower regions before broader ones where they overlap. Also inspect Shipping location(s) in the general settings. Use one address inside the local rule and one outside it to prove the match; this quickly separates zone ordering from a problem inside the method.
Review the method and product data
Within the matching zone, confirm the intended method is enabled and configured. Core flat rates, free shipping and carrier extensions have different inputs. Shipping class, weight and dimensions can affect a method’s calculation, so check the selected variation as well as the parent where applicable.
If only one product combination fails, compare it with a working cart. Look for missing measurements, a different shipping class or a method restriction. Do not assume that a parent product’s settings cover every selected option. For a carrier extension, use its exact data requirements to decide which field needs attention.

Check free-shipping conditions after discounts
Free shipping can depend on a minimum amount, an eligible coupon or a combination. Check the rule selected for that zone and the option governing whether the minimum applies before the coupon discount. A cart can qualify before a discount and fall below the threshold afterwards.
Test just below, at and above the intended threshold, then repeat with the coupon used in the reported failure. Keep tax treatment and the configured rule consistent in the comparison. If the business wants the discount to leave free shipping intact, agree that policy before changing the setting. This is a commercial rule as well as a checkout configuration.
Test the basket and address together
A shipping method can work for one order and be missing from another.
| Check | What to check | Next step |
|---|---|---|
| Destination | Check the exact address against zones from top to bottom. | Find the first matching zone. |
| Basket inputs | Inspect the selected variation, class, measurements and coupon threshold. | Check the method’s requirements. |
| Rule boundary | Repeat inside/outside destinations and below/at/above threshold carts. | Verify intended exceptions. |
Trace carrier errors to the right owner
For live rates, check the extension’s request and the carrier response through a private support route. Product measurements, origin address, destination, supported services and account status can all matter. A local zone correction cannot fix a provider account restriction or an unavailable carrier service.
Use the carrier’s supported test method and redact address details from evidence. Record whether the request failed, the provider returned no eligible service or the store failed to display a valid result. That distinction tells you which supplier needs to act and avoids changing unrelated shipping rules while an external problem remains.

Retest the boundary carts through checkout
After the correction, repeat the original case and the neighbouring destination or cart that should behave differently. Confirm the chosen method, price and delivery details on the resulting test order. Check the discount and payment flow if shipping affects them.
Keep the tested cases and delivery policy with the store notes. New products, variations or carrier changes can then be checked against the same examples. Leave any untested provider service explicit, rather than calling every destination fixed because one checkout worked.
Common questions
Why is a local shipping method not showing?
Check zone order and the exact address match. WooCommerce uses the first matching zone, so an earlier broad zone can hide the local zone’s methods.
Why does free shipping disappear after a coupon?
The minimum may be checked after the discount. Review the free-shipping requirement and its before-coupon option, then test the intended threshold.
Can a variation change the shipping rate?
Yes, depending on the method and its product-data rules. Review the selected variation’s weight, dimensions and shipping class where relevant.