WooCommerce Tips

WooCommerce Location-Based Discounts: How to Target by Country

WooCommerce Location-Based Discounts: How to Target by Country

WooCommerce Tips

WooCommerce Location-Based Discounts: How to Target by Country

WooCommerce does not offer built-in country-targeted discounts โ€” but the capability is available for free in Smart Cycle Discounts. This guide explains the difference between location-based pricing and location-based eligibility, how billing and shipping country checks work at runtime, and exactly how to configure a country-targeted campaign step by step.

Why merchants need country-specific discounts

Country-specific discounts matter because markets are not equal. A store selling in both the United States and Brazil faces different purchasing-power realities, different competitive landscapes, and often different price expectations in each market. A flat 15% launch discount that looks generous in a high-income market may be irrelevant in a market where the baseline price is already high relative to local wages.

There are several common reasons stores reach for location-based discount logic:

  • Regional promotions. A campaign tied to a local holiday or sporting event should apply only to buyers in the relevant country, not globally.
  • Price localization. Stores that sell at a fixed USD price globally sometimes offer a country-specific discount to bring the effective price closer to what the local market will bear.
  • Compliance with trade agreements. Some digital goods or physical exports carry preferential pricing in certain trade zones.
  • New market entry. A reduced price for a target country during a launch window, without affecting existing pricing in established markets.

None of these use cases require IP-based geolocation. They require knowing which country the buyer is associated with at checkout โ€” which WooCommerce already tracks through billing and shipping address fields.

What WooCommerce supports natively

WooCommerce core does not offer country-specific discount rules. The built-in coupon system allows restrictions by product, category, email, and usage limit, but there is no country or location field available on a standard WooCommerce coupon.

WooCommerce does, however, store and expose the customer’s billing country and shipping country as part of the order and customer objects. Any plugin or custom code that hooks into the checkout flow has access to these values. That is the foundation that country-targeting discount plugins are built on.

What WooCommerce does support natively for location: tax zones and shipping zones can be restricted by country. If you are trying to restrict availability of a product rather than its discount, WooCommerce Zones or WooCommerce Shipping might be more appropriate tools.

Location-based pricing vs location-based eligibility

Before configuring any location-based discount, it helps to understand the distinction between two approaches that look similar but behave differently.

Location-based pricing

Location-based pricing means a product carries a different base price depending on where the buyer is located. This is sometimes called multi-currency pricing or regional pricing. The product itself costs less in one country than another, regardless of any promotional campaign.

WooCommerce does not support this natively. It requires a dedicated multi-currency plugin (such as WooCommerce Payments with multi-currency, or a third-party solution) that intercepts the price before display.

Location-based eligibility

Location-based eligibility means a discount exists as a normal campaign or rule, but it only applies when the buyer is in a specific country. The product price is the same everywhere; the discount is available only in qualifying locations.

This is what Smart Cycle Discounts implements. A percentage-off, fixed-amount, tiered, or BOGO campaign can be restricted to buyers in one or more countries. If a buyer in a non-qualifying country reaches the cart, the discount simply does not apply โ€” the product price remains unchanged.

Which approach is right for you? If you need buyers in different countries to see different prices on the product page, you need multi-currency pricing. If you want to offer a promotional discount to specific countries without changing the listed price, location-based eligibility is the right tool โ€” and it is free in Smart Cycle Discounts.

Setting up a country-targeted campaign in Smart Cycle Discounts

Smart Cycle Discounts (version 2.1.1) includes location targeting by billing or shipping country as a free feature. The setting lives inside the campaign wizard’s discount rules section, not as a separate module. You configure it while creating or editing any campaign.

The steps below assume you have Smart Cycle Discounts installed and activated. If you have not created a campaign before, the Smart Cycle Discounts plugin page has an overview of the full campaign setup process.

Step 1: Open a campaign or create a new one

In your WordPress admin, go to Smart Cycle Discounts in the sidebar. Either click New Campaign or open an existing campaign to edit it. The campaign wizard will open.

Step 2: Complete the basic campaign settings

Work through the wizard until you reach the Discount Rules step. You need to set a discount type (percentage, fixed amount, tiered, or BOGO) and a discount value before the location fields become relevant. Location targeting narrows who receives the discount โ€” it does not change what the discount is.

Step 3: Set the location targeting mode

Within the Discount Rules step, look for the Location Targeting section. You will see a mode selector with three options:

  • All locations โ€” the default. No country restriction. The discount applies to buyers anywhere.
  • Include specific countries โ€” the discount applies only to buyers in the countries you select.
  • Exclude specific countries โ€” the discount applies to everyone except buyers in the countries you select.

For a promotional campaign targeting a specific market, select Include specific countries.

Step 4: Select the countries

A country selector will appear once you choose Include or Exclude mode. You can search by country name and add multiple countries. The values stored are standard ISO 3166-1 alpha-2 country codes (two-letter codes such as US, GB, DE, BR).

There is no limit on the number of countries you can select. A campaign covering a trade zone like the EU can include all member states individually, or you can use the Exclude mode and exclude everything outside the zone.

Step 5: Choose the country source

This is the most important setting for accuracy. Smart Cycle Discounts lets you specify which country field to check at checkout:

  • Either โ€” the discount applies if the billing country or the shipping country matches. This is the default and is the most permissive option.
  • Billing country โ€” the discount applies only if the billing address country matches. This is appropriate when you are targeting buyers based on where they pay from.
  • Shipping country โ€” the discount applies only if the shipping address country matches. This is appropriate when you are targeting buyers based on where they receive goods.

Which source should you use? For physical goods, shipping country is usually the more accurate signal โ€” it reflects where the product is going. For digital goods or services, billing country is often more meaningful. The “Either” option covers edge cases where the two differ, at the cost of being less precise.

Step 6: Save and activate the campaign

Complete the remaining wizard steps (product targeting, scheduling, and review) and activate the campaign. The location restriction is stored as part of the campaign’s discount rules and is evaluated at runtime for every checkout where the campaign is active.

Combining location targeting with other conditions

Location targeting in Smart Cycle Discounts stacks with other campaign conditions. A single campaign can restrict a discount by country and by other factors simultaneously.

Common combinations include:

  • Country + product targeting. Limit the discount to buyers in a specific country and only on specific products or categories. Useful for regional product launches.
  • Country + user role. Apply a country-targeted discount only to wholesale customers or registered users. The campaign checks both conditions โ€” the buyer must be in the qualifying country and have the qualifying role.
  • Country + schedule. Run the discount only during a specific date range in a specific market. A campaign for a national holiday can be timed precisely without affecting other ongoing campaigns.
  • Country + spend threshold. Offer a bonus discount for buyers in a target country who reach a cart total above a threshold โ€” useful for average-order-value improvement in a specific market. The post on using WooCommerce spend thresholds to increase average order value covers how to set threshold levels that actually move behavior.

When multiple campaigns are active simultaneously, Smart Cycle Discounts uses its campaign priority system to determine which applies. Location targeting is one of several eligibility conditions evaluated in sequence โ€” a campaign restricted to Germany and to orders above โ‚ฌ50 will only match a buyer who satisfies both conditions. The post on handling overlapping WooCommerce discounts covers the priority framework in practical terms.

A store selling educational software ran a back-to-school campaign for three European markets: Germany, Austria, and Switzerland. Using Include mode with shipping country, they applied a 20% discount on their core product tier only, for a two-week window in August. Because the location check ran at checkout rather than at page load, the product page showed no visible region-specific pricing โ€” the campaign was transparent to browsers and comparison engines, and activated only when a qualifying buyer reached checkout.

Edge cases: VPN users, address mismatches, and pre-checkout behavior

Location-based discounts built on checkout address data behave differently from IP-based geolocation, and understanding the difference helps avoid surprises.

VPN users

Smart Cycle Discounts does not use IP geolocation. The location check reads the billing or shipping country from the WooCommerce customer object โ€” the address the buyer enters at checkout. A buyer connecting through a VPN will see their standard product prices until they enter a qualifying address at checkout. If they enter a shipping address in Germany for a Germany-targeted campaign, they will receive the discount regardless of where their IP address appears to be located.

This is a deliberate choice. IP geolocation is unreliable for several reasons: VPN usage, corporate proxy servers, mobile network routing, and IPv6 allocation practices all produce inaccurate country readings. Address-based checking is more accurate for the use cases that matter โ€” it reflects where the goods are actually going or where the buyer is actually located for billing purposes.

Address mismatches between billing and shipping

When a buyer has a billing address in the United States and a shipping address in Canada, the behavior depends on which country source you configured:

  • Billing country check: the campaign uses US as the country. If the campaign includes US, the discount applies.
  • Shipping country check: the campaign uses CA as the country. If the campaign includes Canada, the discount applies.
  • Either check: the campaign checks both US and CA. If either is in the included list, the discount applies.

There is no ambiguity in the logic โ€” the behavior is determined entirely by your country source setting.

Pre-checkout behavior (no address known yet)

When a buyer adds items to the cart but has not yet entered address information, Smart Cycle Discounts does not know their country. In this case, the location check returns a non-blocking result: the campaign is not disqualified solely because the country is unknown. The check only actively blocks the discount when the buyer is in a country that is explicitly excluded or not included in the qualifying list.

In practice this means a buyer browsing and adding to cart will not see the discount prematurely applied or refused. The accurate check happens at checkout when address data is available. This matches standard WooCommerce behavior for most conditional discount logic.

Unauthenticated users with “shop base” default address

WooCommerce has a setting that fills in your store’s base country as the default customer address for unauthenticated users. When this setting is active (set to “Shop base” or “Base address”), Smart Cycle Discounts skips the WooCommerce default country fallback and treats the country as unknown rather than defaulting to your store’s country. This prevents your store’s home country from inadvertently qualifying all anonymous browsers for a location-restricted discount.

Frequently asked questions

Is location targeting by country free in Smart Cycle Discounts?

Yes. As of Smart Cycle Discounts version 2.1.1, location targeting by billing or shipping country is listed under the free tier in the plugin’s readme. You do not need a paid plan to restrict a campaign by country.

Can I target by region or city, not just country?

Smart Cycle Discounts location targeting operates at the country level only (ISO 3166-1 alpha-2 codes). State, region, postal code, and city targeting are not currently available in the location targeting module. For sub-country targeting, a custom code solution or a different plugin would be required.

Does the discount appear on the product page or only at checkout?

The discount is evaluated at checkout when the buyer’s address is known. Product pages display the standard price. There is no mechanism in Smart Cycle Discounts to show a country-specific “preview” price on the product page โ€” that would require multi-currency or location-aware pricing at the display layer, which is a separate concern from eligibility-based discounts.

What happens if a buyer uses a freight-forwarding address?

If a buyer in Brazil uses a freight-forwarding address in the United States, the shipping country used in the check will be US. If your campaign includes the United States, the buyer will qualify. If it only includes Brazil, they will not. The check is address-based, not buyer-intent-based โ€” it reflects the address entered at checkout, nothing more.

Can I run separate campaigns for different countries at the same time?

Yes. You can create multiple campaigns with different country restrictions and run them simultaneously. Campaign priority settings in Smart Cycle Discounts determine which campaign takes effect when a buyer qualifies for more than one. You can configure which campaign wins in overlapping cases without needing to manually exclude countries from each campaign. The post on WooCommerce discount conflict detection explains what a pre-launch health check evaluates across overlapping campaigns.

Does it work with WooCommerce HPOS (High-Performance Order Storage)?

Smart Cycle Discounts is built with HPOS compatibility. The location check reads from the WooCommerce customer object at checkout rather than directly from post meta, so it is compatible with both the legacy and HPOS order storage systems.

Key takeaways

  • WooCommerce core has no built-in country-targeted discount rules. This requires a plugin.
  • Location-based eligibility (discount available in specific countries) is different from location-based pricing (product costs different amounts by country). Smart Cycle Discounts handles the former.
  • Country targeting in Smart Cycle Discounts is free as of version 2.1.1. No paid tier is required.
  • The check uses billing or shipping address โ€” not IP geolocation. This makes it more accurate and predictable than IP-based approaches.
  • When no address is entered yet (pre-checkout), the check is non-blocking. The restriction only fires when the buyer is positively identified as being in a non-qualifying country.
  • Location targeting stacks with other campaign conditions: product targeting, user roles, schedules, and spend thresholds can all be combined with a country restriction in a single campaign.

Webstepper Editorial

Practical WooCommerce guidance from operators who have run stores, not just written about them. Every feature claim in this post has been verified against the Smart Cycle Discounts plugin source code (version 2.1.1).