State Based WooCommerce Shipping Zone

Create shipping zones that target specific states or provinces (not just whole countries). Then attach shipping methods and rules to those zones—perfect for regional pricing, surcharges, or local promotions.

What you can target

With zones, you can target:

  • Continents: Africa, Antarctica, Asia, Europe, North America, Oceania, South America
  • Countries: One or many (e.g., United States, Canada)
  • States/Provinces: Fine-grained regions within a country (e.g., CA, NY, TX)

State-based zones take precedence over broader country/continent zones if you place them above those zones in the list.


Create a state-based shipping zone

  1. Click Add shipping zone.
  2. Enter a descriptive Zone Name (e.g., “US—CA & NV”).
  3. In Zone regions, select the country first (e.g., United States).
  4. Limit to specific states and choose the states you want (e.g., California (CA), Nevada (NV)).
  5. Save.


Add a zone-based shipping method

  1. Click Add New Shipping Method.
  2. Shipping method name: e.g., “Domestic Flat Rate (CA & NV)”.
  3. Shipping charge: e.g., $10.00.
  4. Make sure the method is added inside the state-based zone you created.
  5. (Optional) Add conditions (subtotal, weight, coupon, class, day/time) if needed.

  6. Save.

Example A — US state-based zone (CA & NV)

  • Zone: United States → States: CA, NV

    Method: Flat rate $10.00 labeled “Standard Shipping (CA/NV)”

    Expected behavior:

    • Shipping address in CA or NV → shows Flat rate: $10.00
    • Any other US state → this method doesn’t appear (fallbacks from other zones apply)

Optional — Country or continent-based variants

If you need broader coverage:

  • Country-based zone (e.g., Turkey): Create a zone with country = Turkey, add a flat-rate method (e.g., $8.00). Customers selecting Turkey will see this method.
  • Continent-based zone (e.g., North America): Select North America, then refine with additional rules (state/ZIP) inside method conditions if required.
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.