Country pricing zones

Country pricing zones group WooCommerce countries into site-specific regions and resolve one stable country context for each request. They let product managers apply validated regional amounts to supported WooCommerce products and maintain a site-specific index for efficient catalog operations.

When its zones and product index are ready, the tool applies the resolved zone to WooCommerce's server-side product price reads. Simple products, external products with a normal price, variations, variable products, subscriptions, and variable subscriptions receive regional current, regular, sale, range, availability, and supported sign-up-fee values. WooCommerce price ordering, minimum and maximum filters, and on-sale product sets use the same zone-specific index.

Public pages that can be shared by a page cache contain neutral price and product-state markers. A private, non-cacheable browser request then hydrates regional price HTML, sale state, action controls, and variable-product availability without placing a visitor's regional amount in the shared page.

Cart, Checkout, and their Store API equivalents resolve the same zone again on the server. Changing the customer's confirmed country refreshes line prices and totals before payment, and the completed order retains its final zone and regional product-price evidence. The tool does not change the store currency or overwrite WooCommerce's normal price fields. Existing order-line amounts remain historical values.

POM Product Add-Ons and POM Composite products consume that same context. Their fixed monetary values can vary by zone, percentages continue to use the regional product or component base, and their cart and order evidence records the applied zone. WooCommerce Subscriptions renewals keep the subscription's historical zone and recurring evidence; switches use the stored zone with the target product's current catalog values, while resubscribe is a new purchase in the customer's current confirmed country.

Start here

  1. Configure country zones.
  2. Edit country-zone product prices.
  3. Understand universal price loading.
  4. Buy with country-zone prices.
  5. Reindex country-zone product prices.
  6. Check country-zone health and compatibility.

Requirements

  • WooCommerce must be installed and active.
  • An administrator needs permission to manage WooCommerce.
  • Each country can belong to only one zone.
  • Every non-empty configuration needs exactly one enabled fallback zone.
  • The country-price product index must be ready before regional runtime filters register.
  • WooCommerce Price Based on Country and its Pro add-on must be inactive.

Zone settings belong only to the current site. On WordPress multisite, configure and verify each store separately.

How a request chooses a country

The tool checks these sources in order:

  1. A valid short-lived administrator preview.
  2. A country supplied by a controlled compatible POM process.
  3. The current WooCommerce customer.
  4. The country submitted during checkout.
  5. The WooCommerce session.
  6. WooCommerce IP geolocation.
  7. The WooCommerce store base country.

The resolved country selects its assigned enabled zone. An unassigned country, or a country assigned only to a disabled zone, selects the enabled fallback zone.

Without trusted proxy ranges, IP geolocation uses compatibility mode: a valid X-Real-IP address takes precedence, followed by the first address in X-Forwarded-For, and then the direct origin peer address. This requires no CDN or wp-config.php setup, but a forwarding header cannot be authenticated in this mode. Defining trusted proxy ranges switches the resolver to strict chain validation. See Check country-zone health and compatibility for the supported constants and trade-offs.

WooCommerce's effective selling-country list remains authoritative for purchasing. A country outside that list cannot buy, independently of whether the fallback policy shows the effective fallback/default price or hides it.

How regional product values behave

  • Inherit WooCommerce prices keeps the normal WooCommerce values for that zone.
  • Override for this zone supplies the zone's regular price and an optional lower sale price.
  • Unavailable in this zone removes the effective price and makes the supported product or variation invisible and not purchasable for the request.
  • The unmatched-country display setting controls visible price HTML only. Internal server and form amounts remain available for valid product, add-on, cart, and checkout calculations when purchasing is otherwise allowed.
  • WooCommerce's normal sale dates decide when a regional sale amount becomes effective.
  • Variable ranges are calculated from the available regional variation rows.
  • Variation price caches are separated by site, zone, zone revision, display context, and base or regional mode.
  • Product Add-On and Composite fixed values may override their global amount by zone. An empty zone amount inherits the global value.
  • Product Add-On and Composite percentages remain global and calculate from the already regionalized product or component amount.

Custom product types outside the supported families keep their normal WooCommerce prices. Site Health records an observed unsupported type so it can be reviewed before rollout.