International Fees and Coupons

Import duties and regional discount codes for WooCommerce in one plugin. Set fees and coupon rules by country or by whole continent, conditional on the shipping method and the order value. Replaces Tariff Manager and Regional Coupon Restrictions, importing the settings from both.

WooCommerce v4.1.0

International Fees and Coupons

  • Requires at least: 5.0
  • Requires PHP: 7.4
  • WC requires at least: 3.0
  • Stable tag: 4.1.0

Country and continent based fees and coupons for WooCommerce. Replaces Tariff Manager and Regional Coupon Manager, which it imports on activation.

Why one plugin

Fees and coupons were two plugins asking the same question - where is this order going? - and answering it two different ways. Tariff Manager knew about countries; Regional Coupon Manager knew about lists of countries. Neither knew about continents, and neither could say "only with this shipping method" or "only above this order value".

Regions

A rule belongs to a region, and a region is either a continent or a single country. A country picks up its continent's rules as well as its own:

Africa (all countries) Fee Import duty, 5.5%, any shipping method Coupon FREESHIP, $40, only with STD - International Tracked

Zimbabwe Coupon ZIMBABWE, $100, only on orders over $100

An order to Zimbabwe owes the Africa-wide import duty, and may use either the Africa-wide FREESHIP code or Zimbabwe's own - whichever suits it.

Continent membership comes from WooCommerce itself, so it stays correct without a bundled country table going stale.

How fees combine

Two fees on the SAME region always stack. Germany carrying 10% VAT and a $100 import fee charges both: a $100 order becomes $210. Two fees entered against one country are two things owed, not a choice.

When a country and its continent BOTH have fees, the store decides, under WooCommerce -> Fees and Coupons:

Stack every matching fee is charged Highest only only the single largest matching fee Country first the country's fees, falling back to the continent's Continent first the continent's fees, falling back to the country's

Each fee appears as its own line in the cart, so a customer can see what they are being charged for.

Coupons

Codes are created as real WooCommerce coupons, so they are typed into the usual box, appear in reports and behave normally everywhere else. What WooCommerce cannot express natively - the region, the shipping method and the order-value condition - is enforced by this plugin.

"Stackable coupons" decides whether a customer who qualifies for several of these codes may use more than one. Coupons from other plugins are never affected.

Codes you remove here are never deleted from WooCommerce, because past orders reference them.

Explaining a fee to the customer

Each fee can carry a "What is this?" note. When it has one, a "?" appears beside that fee in the cart and checkout totals, and clicking it opens the note in a row directly underneath. A fee with no note gets no "?".

The note is plain text written on the settings screen, so it can say what the charge is for in the store's own words rather than leaving a customer to guess at a line item they did not expect.

Shipping costs

Three independent switches, because the answer differs per store:

Include shipping in fee calculations a 5% fee on goods, or goods + postage Include shipping in coupon discounts a 10% code off goods, or off the lot Include shipping in order value conditions "over $100" before or after postage

Upgrading

On activation the plugin imports from Tariff Manager (bw_tariff_settings) and Regional Coupon Manager (bw_regional_coupon_settings). Their options are read, never written, so deactivating and going back is possible. A coupon that covered five countries becomes that code against five regions.

Tariff Manager's global shipping-method and cart-value settings become per-rule conditions, which is where they belong now that every rule carries its own. A store that set both a minimum and a maximum cart value keeps the minimum.