Troubleshooting covers the other symptoms: a wrong price, a stale price, a doubled option.
Why does WooCommerce say "there are no shipping options available"?
Because for this cart and this address, no shipping method produced a rate: either no shipping zone matched the address, or every method in the matched zone was disabled or found no applicable rule — most often due to missing product weights or a stale rate cache. The checks below locate the exact cause in minutes; they apply to Weight Based Shipping and, for the most part, to any shipping method.
The wording varies with the page and the WooCommerce version — "no shipping options were found" in the cart, "there are no shipping options available for your address" at checkout — but the causes are the same.
Check 0 Turn on shipping debug mode
WooCommerce has a built-in tool for exactly this situation: Settings → Shipping → Shipping settings → Enable debug mode. With it on, rate caching is disabled, so every change you make is applied immediately, and the cart page names the shipping zone that matched the customer's address. WooCommerce prints that zone notice on the cart only, never at the checkout. Turn it off when you're done.
Check 1 Does the shipping zone cover the address?
WooCommerce picks exactly one zone for the customer's shipping address — the first zone whose region matches. Methods from other zones are not offered, and the "Locations not covered by your other zones" fallback only applies when nothing else matched. If your method sits in a zone that doesn't include the customer's country or postcode, the customer won't see it. Debug mode from Check 0 names the matched zone. To confirm the zone itself works, temporarily add a plain Flat Rate method to it: if Flat Rate shows up at checkout and your method doesn't, the zone is fine and the culprit is in the rules.
Check 2 Is the method enabled?
Trivial but frequent: the method's toggle in the zone's method list is off, or the method was disabled in its own editor (the power button in the header).
Check 3 Does any rule match the cart?
Weight Based Shipping hides itself when no rule applies to the current cart. A typical case: all rules have weight brackets like 1–5 kg and 5–10 kg, and the cart weighs 12 kg — nothing matches, no price to show. Reproduce the exact cart, walk the rules, and check their weight, value, and product conditions against it.
A common mistake we see in support: the Weight and Value columns look alike — both are numeric ranges — but Weight is the cart weight in the store unit, while Value is the order subtotal in money. A weight range entered into Value by mistake (or the other way around) produces a rule that matches almost nothing.
One cause is easy to miss because it looks correct on screen. A rule's Destination list is not limited to the zone the method sits in, so a rule can name a country the zone never sends you, and it will quietly never match. If the table looks right and produces nothing, check that its destinations lie inside the zone — or clear them, since a rule left at any already covers the whole zone.
A quick way to isolate the problem: temporarily add a rule with no conditions at all — if the method reappears, one of the conditions in your real rules is the culprit. And as a permanent safety net, a catch-all rule at the bottom of the list guarantees the method always has an answer.
Check 4 Do the products have weights?
A product with an empty weight field weighs zero. If your rules start above zero — say, "from 1 kg" — a cart of weightless products matches nothing and the method disappears. Either fill in the weights (Product data → Shipping → Weight) or make the first rule start at 0.
Watch the units, too: rule ranges are always in the store weight unit (WooCommerce → Settings → Products). If a product weighs 1500 because it was entered in grams, a "from 1 to 2" rule meant as kilograms will never match it.
Check 5 Did a DENY rule fire?
A rule with the DENY modifier removes the shipping method for carts it matches — that's its purpose, for example "don't ship furniture abroad". Check whether the problem cart falls under one of these rules.
Check 6 Are you looking at a cached rate?
WooCommerce caches calculated shipping per cart session. After you change the rules, an open cart may keep showing the old result. Debug mode (Check 0) disables the cache; otherwise add or remove any item to force a recalculation, or clear the sessions in WooCommerce → Status → Tools → Clear customer sessions (this logs your customers out, so use it on a staging site).
Check 7 Rule out a conflict
If everything above checks out and the method still hides, another plugin or the theme may be interfering with the shipping calculation. On a staging site, switch briefly to a default theme and disable the other plugins: if the options come back, re-enable things one by one until the culprit shows itself.
Still stuck? Contact support — attach a screenshot of your rules and the cart contents, and we'll figure it out together.