The Tax Display by Country plugin doesn't change how taxes are calculated. It simply tells WooCommerce to display prices with or without taxes, and leaves the actual calculation to the WooCommerce core.
The most common reason of prices appearing incorrect is actually a misunderstanding of how WooCommerce tax calculation works. In WooCommerce, "prices inclusive of tax" mean "prices inclusive of the tax that applies to the shop's base country", not the the tax that applies to customer's country. This concept is easier to understand with an example.
- Shop base country: Ireland
- Base country tax: 23%
- Product A, price 100 EUR, inclusive of tax. In WooCommerce, this means "100 EUR, inclusive of 23% tax"
- Tax Display plugin to show prices inclusive of tax to all EU visitors
When an visitor reaches the site, WooCommerce calculates prices inclusive of tax as "product price - shop's base country tax + visitor's country tax". This means that visitors will see the following prices:
- Germany (19% tax): 100 EUR - 23% tax + 19% tax = 96.74 EUR
- France (20% tax): 100 EUR - 23% tax + 20% tax = 97.56 EUR
- Sweden (25% tax): 100 EUR - 23% tax + 25% tax = 101.63 EUR
The above calculaton is by design in WooCommerce. The Tax Display by Country plugin doesn't change it, by default.
How to keep product prices fixed, no matter what tax applies to customers
The Tax Display by Country plugin includes an option to ensure that product prices stay the same, no matter what tax rate applies to customers. Such option can be found in WooCommerce > Tax Display by Country > Tax Calculation page.
After enabling that option, the price of Product A will become the following:
- Germany (19% tax): 100 EUR, including 19% tax
- France (20% tax): 100 EUR, including 20% tax
- Sweden (25% tax): 100 EUR, including 25% tax
- United States (no tax): 100 EUR
- Japan (no tax): 100 EUR
Important note about shipping
In WooCommerce, shipping costs are always considered exclusive of tax, regardless of any setting. This is also by design, and it's a hard-coded logic in the WooCommerce core. Until the shipping calculation logic is made more flexible, it won't be possible to keep shipping costs fixed, inclusive of tax, as it's done with product prices.