Title: European VAT Compliance Assistant for WooCommerce
Author: David Anderson / Team Updraft
Published: <strong>November 28, 2014</strong>
Last modified: March 25, 2026

---

Search plugins

![](https://ps.w.org/woocommerce-eu-vat-compliance/assets/banner-772x250.png?rev
=2530421)

![](https://ps.w.org/woocommerce-eu-vat-compliance/assets/icon-256x256.png?rev=1106140)

# European VAT Compliance Assistant for WooCommerce

 By [David Anderson / Team Updraft](https://profiles.wordpress.org/davidanderson/)

[Download](https://downloads.wordpress.org/plugin/woocommerce-eu-vat-compliance.1.36.6.zip)

 * [Details](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/#description)
 * [Reviews](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/#reviews)
 *  [Installation](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/#installation)
 * [Development](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/#developers)

 [Support](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/)

## Description

#### The European/UK VAT (IVA) laws

Since January 1st 2015, all digital goods (including electronic, telecommunications,
software, ebook and broadcast services), and from 1st July 2021 physical goods sold
across EU and UK borders have been liable under law to variable VAT (a.k.a. IVA)
charged in the country of _purchase_, at the VAT rate of that country (background
information: [https://taxation-customs.ec.europa.eu/system/files/2016-09/explanatory_notes_2015_en.pdf](https://taxation-customs.ec.europa.eu/system/files/2016-09/explanatory_notes_2015_en.pdf)).
This can apply even if the seller is not based in the EU or UK. It is accompanied
by various auditing/recording requirements.

#### How this plugin can take away the pain

This WooCommerce plugin provides features to assist with EU, UK, Norwegian and Swiss
VAT law compliance. Currently, those features include:

 * **Identify your customers’ locations:** this plugin will record evidence of your
   customer’s location, using their billing or shipping address, and their IP address(
   via a GeoIP lookup).
 * **Evidence is recorded, ready for audit:** full information that was used to 
   calculate VAT and customer location is displayed in the WooCommerce order screen
   in the back-end.
 * **Display prices including correct VAT from the first page:** GeoIP information
   is also used to show the correct VAT from the first time a customer sees a product.
   A widget and shortcode are also provided allowing the customer to set their own
   country.
 * **Currency conversions:** Most users (if not everyone) will be required to report
   VAT information in a specific currency. This may be a different currency from
   their shop currency. This feature causes conversion rate information to be stored
   together with the order, at order time. Currently, you can choose from official
   rates from the European Central Bank (ECB), Danish and Czech National Banks, 
   the Central Bank of the Russian Federation, and HM Customs & Revenue (UK). You
   can also over-ride the currency and rate-provider on a per-country basis.
 * **Entering and maintaining each country’s VAT rates:** this plugin assists with
   entering EU and/or UK VAT rates accurately by supplying a single button to press
   in your WooCommerce tax rates settings, to add or update rates for all countries(
   standard or reduced) with one click.
 * **Reporting:** Advanced reporting capabilities, allowing you to see all the information
   needed to make a OSS/MOSS/IOSS (one-stop shop) VAT report. The report is sortable
   and broken down by country, VAT rate, VAT type (traditional/variable) and order
   status, and can be exported as a CSV.
 * **Forbid vatable sales if any goods have VAT chargeable** – for shop owners for
   whom VAT compliance is too burdensome, this feature will allow you to forbid 
   customers from configured VAT territories to check-out if they have selected 
   any goods which are subject to VAT (whilst still allowing purchase of other goods,
   unlike the built-in WooCommerce feature which allows you to forbid check-out 
   from some countries entirely).
 * **Central control:** brings all settings, reports and other information into 
   a single centralised location, so that you don’t have to deal with items spread
   all over the WordPress dashboard.
 * **Mixed shops:** You can sell goods subject to your chosen territories’ VAT under
   the customer-place-of-supply regulations and any other physical goods which are
   subject to traditional base-country-based VAT regulations. The plugin supports
   this via allowing you to identify which tax classes in your WooCommerce configuration
   are used for customer-place-of-supply items. Products are allocated to the correct
   country according to which country VAT is payable to.
 * **Distinguish VAT from other taxes:** if you are in a jurisdiction where you 
   have to apply other taxes also, then this plugin can correctly distinguish which
   taxes are payable to which jurisdictions.
 * **Add line to invoices:** If VAT was paid on the order, then an extra, configurable
   line can be added to the footer of the PDF invoice (when using the [the free WooCommerce PDF invoices and packing slips plugin](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/),
   or its premium counterpart).
 * **Refund support:** includes information on refunded VAT, on relevant orders.
 * **Same prices:** Not strictly a VAT compliance issue (different pricing per-country
   is not illegal), but this plugin adds an option to enable WooCommerce’s hidden
   support for adjusting pre-tax prices to enable the same post-tax (net) price 
   to apply in all customer locations.
 * **Brexit-ready:** The plugin has been audited and appropriately adapted to be
   usable by both “EU 27” and UK (and other) countries after the expiry of the EU
   and UK’s transitional period (at the end of December 2020), including the ability
   to report taxes in multiple currencies using different exchange rate providers.
   Existing users should take the time to go through their existing settings to 
   adapt to their new situation (e.g. remove tax table entries for countries that
   they are no longer required to remit taxes to; check that they are using the 
   correct exchange rate provider and reporting currency for each tax region that
   they remit to).
 * **WooCommerce high-performance order storage:** This plugin is HPOS-compatible(
   see: https://woocommerce.com/document/high-performance-order-storage/)
 * **WooCommerce block cart/checkout:** This plugin is compatible with the WooCommerce
   block cart and checkout (see: https://woocommerce.com/checkout-blocks/), as well
   as the traditional shortcode cart/checkout.

[A Premium version is on sale at this link](https://www.simbahosting.co.uk/s3/product/woocommerce-eu-vat-compliance/),
and currently has these _additional_ features ready:

 * **VAT-registered buyers can be exempted, and their numbers validated:** a VAT
   number can be entered at the check-out, and it will be validated (via VIES, HMRC
   or VatSense). Qualifying customers can then be exempted from VAT on their purchase,
   and their information recorded. The customer’s VAT number will be appended to
   the billing address where shown (e.g. order summary email, PDF invoices). An 
   extra, configurable line specific to this situation can be added to the footer
   of the PDF invoice (when using the [the free WooCommerce PDF invoices and packing slips plugin](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/)).
 * **Partial VAT exemption:**** make VAT-exemption upon supply of a valid VAT number
   to only apply to products in tax classes specified by the shop owner (rather 
   than to all products)**
 * **Optionally allow B2B sales only** – for shop owners who wish to only make sales
   that are VAT-exempt (i.e. B2B sales only), you can require that any EU and/or
   UK customers (optionally including or excluding those in your country) enter 
   a valid VAT number at the check-out. (You can have different policies for different
   VAT regions).
 * **Change taxation rules based upon year-to-date sales thresholds:** for shop 
   owners who can or must tax differently based upon their total sales in the year
   so far (e.g. EU shop owners who can take advantage of a €10,000 threshold for
   cross-border sales before which they can treat the place of supply as being their
   own, not the customer’s location), you can dynamically treat products as having
   a different taxation class until this threshold is met.
 * **CSV download:** A CSV containing comprehensive information on all orders with
   VAT data from your configured regions can be downloaded (including full compliance
   information). Manipulate in your spreadsheet program to make arbitrary calculations.
 * **Non-contradictory evidences:** require two non-contradictory evidences of location(
   if the customer address and GeoIP lookup contradict, then the customer will be
   asked to self-certify his location, by choosing between them).
 * **Show multiple currencies for VAT taxes on PDF invoices produced by [the free WooCommerce PDF invoices and packing slips plugin](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/)**(
   and on credit notes produced by its Premium counterpart).
 * **Support for the official WooCommerce subscriptions extension, and for Subscriptio(
   a RightPress/CodeCanyon alternative), and Subscriben.**
 * **Value-based exemption:** An order can have VAT removed if the order value passes
   a configured value and is for a specified country. This features was developed
   to support the UK’s 2021 regulations for handling VAT differently on an order
   depending on whether or not the order passes a £135 threshold value, and then
   expanded to support multiple rules for different countries and amounts.

[Read more about the Premium version of this plugin at this link.](https://www.simbahosting.co.uk/s3/product/woocommerce-eu-vat-compliance/)

It is believed (but not legally guaranteed), that armed with the above capabilities,
a WooCommerce shop owner will be in a position to fulfil the requirements of EU 
or UK VAT laws: identifying the customer’s location and collecting multiple pieces
of evidence, applying the correct VAT rate, validating VAT numbers for B2B transactions,
and having the data needed to create returns. (If in the EU or UK, then you will
also need to make sure that you are issuing your customers with VAT invoices containing
the information required in your jurisdiction, via [a suitable WooCommerce invoice plugin](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/)).

#### Footnotes and legalese

This plugin is supported on, and information in this document is for, WooCommerce
4.5 up to the latest release (i.e. current version; you can still [download older versions supporting previous WooCommerce release series if you wish](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/advanced/)).
It fetches data on current VAT rates from Amazon S3 (using SSL if possible); or,
upon failure to connect to Amazon S3, from https://raw.githubusercontent.com. If
your server’s firewall does not permit this, then it will use static data contained
in the plugin.

Geographical IP lookups are performed via WooCommerce’s built-in geo-location features;
or, alternatively, if you use CloudFlare, then you can [activate the CloudFlare feature for sending geographical information](https://support.cloudflare.com/hc/en-us/articles/200168236-What-does-CloudFlare-IP-Geolocation-do-).
In some situations, these lookups may be performed via the public API at https://
ipapi.co – if this is undesirable for you, then add `define('WC_VAT_COMPLIANCE_DO_REMOTE_IP_LOOKUPS',
false);` to your wp-config.php file.

Please make sure that you review this plugin’s installation instructions and have
not missed any important information there.

Please note that, just as with WordPress and its plugins generally (including WooCommerce),
this plugin comes with no warranty of any kind and you deploy it entirely at your
own risk. Furthermore, nothing in this plugin (including its documentation) constitutes
legal or financial or any other kind of advice of any sort. In particular, you remain
completely and solely liable for your own compliance with all taxation laws and 
regulations at all times, including research into what you must comply with. Installing
any version of this plugin does not absolve you of any legal liabilities, or transfer
any liabilities of any kind to us, and we provide no guarantee that use of this 
plugin will cover everything that your store needs to be able to do.

Whether you think the EU’s treaties with other jurisdictions will lead to success
in enforcing the collection of taxes in other jurisdictions is a question for lawyers
and potential tax-payers, not for software developers!

Many thanks to Diego Zanella, for various ideas we have swapped whilst working on
these issues. Thanks to Dietrich Ayala and other authors, whose NuSOAP library is
included under the LGPLv2 licence.

#### Other information

 * [Some other WooCommerce plugins you may be interested in](https://www.simbahosting.co.uk/s3/shop/)
 * This plugin is ready for translations (English, Dutch, Finnish, French and German
   are currently available), and we would welcome new translations (please post 
   them in the support forum; [the POT file is here](https://plugins.svn.wordpress.org/woocommerce-eu-vat-compliance/trunk/languages/),
   or you can contact us and ask for a web-based login for our translation website).

### License

    ```
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    ```

## Screenshots

[⌊A button is added to allow you to enter all EU VAT rates with one click. Note:
Screenshots are included below from the Premium version. Please check the feature
list for this plugin to clarify which features are available in which version.⌉⌊
A button is added to allow you to enter all EU VAT rates with one click. Note: Screenshots
are included below from the Premium version. Please check the feature list for this
plugin to clarify which features are available in which version.⌉[

A button is added to allow you to enter all EU VAT rates with one click. _Note: 
Screenshots are included below from [the Premium version](https://www.simbahosting.co.uk/s3/product/woocommerce-eu-vat-compliance/).
Please check the feature list for this plugin to clarify which features are available
in which version._

[⌊VAT information being shown in the order details page⌉⌊VAT information being shown
in the order details page⌉[

VAT information being shown in the order details page

[⌊Per-country VAT reports⌉⌊Per-country VAT reports⌉[

Per-country VAT reports

[⌊Download all compliance information in a spreadsheet.⌉⌊Download all compliance
information in a spreadsheet.⌉[

Download all compliance information in a spreadsheet.

[⌊Compliance dashboard, bringing all settings and information into one place⌉⌊Compliance
dashboard, bringing all settings and information into one place⌉[

Compliance dashboard, bringing all settings and information into one place

[⌊Currency conversions, if you sell and report VAT in different currencies.⌉⌊Currency
conversions, if you sell and report VAT in different currencies.⌉[

Currency conversions, if you sell and report VAT in different currencies.

[⌊Compliance report, checking a number of common essentials for configuring your
store correctly for VAT.⌉⌊Compliance report, checking a number of common essentials
for configuring your store correctly for VAT.⌉[

Compliance report, checking a number of common essentials for configuring your store
correctly for VAT.

## Installation

Standard WordPress installation; either:

 * Go to the Plugins -> Add New screen in your dashboard and search for this plugin;
   then install and activate it.

Or

 * Upload this plugin’s zip file into Plugins -> Add New -> Upload in your dashboard;
   then activate it.

After installation, you will want to configure this plugin, as follows:

1) If you are selling goods to and are liable to pay taxes in the EU and/or UK for
which the VAT rate should depend upon the buyer’s country (i.e. the place of supply
is deemed as the customer’s location), then go to WooCommerce -> Settings -> Tax-
> Standard Rates, and press the “Add / Update VAT Rates”, making sure that “Standard”
is selected in the rates drop-down.

2) If you have products that are liable for VAT at a reduced rate, then also go 
to WooCommerce -> Settings -> Tax -> Reduced Rate Rates, and press the “Add / Update
VAT Rates”, making sure that “Reduced” is selected in the rates drop-down.

You must remember, of course, to make sure that a) your WooCommerce installation
is set up to apply taxes to your sales (WooCommerce -> Settings -> Tax) and b) that
your products are placed in the correct tax class (choose “Products” from the WordPress
dashboard menu).

## FAQ

### Is this plugin only for shops based on the EU? Or in the UK?

It is suitable for shops in either, or neither, of the above. That is to say, you
can configure the settings appropriately for wherever you are based.

### How can I display a widget allowing a visitor to pre-select their country, when viewing products (and thus set VAT accordingly)?

There is a widget for this; so, look in your dashboard, in Appearance -> Widgets.
You can also display it anywhere in page content, using a shortcode, shown here 
with the default values for the available parameters: [euvat_country_selector include_notaxes
=”1″ classes=”” include_which_countries=”all”]. The ‘include_notaxes’ parameter 
controls whether to include a “I am not liable to VAT” option. The ‘classes’ parameter
allows you to add CSS classes to the resulting container. The ‘include_which_countries’
parameter can take the values “all”, “shipping” (those countries that your store
ships to, as indicated by the WooCommerce settings) or “selling” (those that it 
sells to), to indicate which countries should be included in the list. N.B. The “
eu_” in the shortcode name is due to the plugin’s history; it does not mean that
only EU countries are choosable.

### I want to make everyone pay the same prices, regardless of VAT

This is not strictly a VAT compliance issue, and as such, does not come under the
strict remit of this plugin. (Suggestions that can be found on the Internet that
charging different prices in difference countries breaks non-discrimination law 
have no basis in fact at the time of writing). However, WooCommerce does include
_experimental_ support for this (see: [https://github.com/woocommerce/woocommerce/wiki/How-Taxes-Work-in-WooCommerce#prices-including-tax—experimental-behavior](https://github.com/woocommerce/woocommerce/wiki/How-Taxes-Work-in-WooCommerce#prices-including-tax---experimental-behavior)),
and so we have provided an option in the settings to tell WooCommerce to turn this
on.

## Reviews

![](https://secure.gravatar.com/avatar/5d157abbaa545bb84974eb12499cb91f6d5b8a89d64fec190198d142c3750101?
s=60&d=retro&r=g)

### 󠀁[Does the job perfectly](https://wordpress.org/support/topic/does-the-job-perfectly-104/)󠁿

 [chchch](https://profiles.wordpress.org/goch/) March 27, 2024

I’ve tried 2 or 3 vat plugins, and that one is the best imo. works great.

![](https://secure.gravatar.com/avatar/e921a420281f935010b9f2bf1ba18f715a2b4a52d55cc7dfe17aee805c168e9c?
s=60&d=retro&r=g)

### 󠀁[This plugin made something very ugly, look astonishing.](https://wordpress.org/support/topic/this-plugin-made-something-very-ugly-look-astonishing/)󠁿

 [hebhansen](https://profiles.wordpress.org/hebhansen/) December 23, 2023

This plugin has been around for a while and transitioned with woo for compliance
to EU V.A.T law. Since 21, eShops may charge VAT on a per country basis, based on
delivery adress. And how the h*** would you administer this, if it wasn’t for David’s
master code. This plugin adds VAT tables to your site incl all vat rates for EU 
Countries. Then you can add any and all other rates, you wish, such as Zero, reduced,
artist,services and you can even add other countries. So this can easily work for
rules in Aussieland, that I am not even aware of. But hold on….. this plugin can
if you set it, display next to the price that this is ex vat / incl vat / Incl VAT
Denmark or Luxembourg and then show nothing if no VAT is added for trade beyond 
EU. A country like Denmark has one of the highest rates at 25%. That addition is
a competitive disadvantage for sales to fx Tunisia. That’s why this function is 
vital. For anonymous users it will geolocate, once adding shipping address it will
recalculate seamlessly. Under Danish B2C law you must at all times present pricing
incl. of VAT. Now if a user lies about their location behind a VPN, what can anyone
do? Let the dice roll and take it to court. Cudos to David for making life so easy
for so many in the middle of anarchy. Thx a ton and merry X-mas.

![](https://secure.gravatar.com/avatar/15528012a7e6a3190b7fb1b55af9edf0d96abce4fe3fcfd6f9ed3aa49e2feda5?
s=60&d=retro&r=g)

### 󠀁[Great plugin](https://wordpress.org/support/topic/great-plugin-36928/)󠁿

 [hans410947](https://profiles.wordpress.org/hans410947/) May 27, 2023 1 reply

Great plugin and great support!

![](https://secure.gravatar.com/avatar/0e654d179ec67a68b5a142c4f748fccff9110eefedb769d49663a58cd713cbf5?
s=60&d=retro&r=g)

### 󠀁[Great Product ! Great Support !](https://wordpress.org/support/topic/great-product-great-support-147/)󠁿

 [bterburg](https://profiles.wordpress.org/bterburg/) January 21, 2022

Such plug-in does exactly what’s expected and is really useful to be compliant with
such new VAT regulation. David is a great professional, coder and support engineer.
When I was in trouble (in migrating from Aelia version to Simba version of such 
VAT EU plug-in), he was really available and willing-full to help to solve, also
in late evening. Thanks ! Great product ! Great support ! Great people !

![](https://secure.gravatar.com/avatar/f6b9690906bcdd4a55912102e1a815ea3c449fee28e94ce7f16564786717beb9?
s=60&d=retro&r=g)

### 󠀁[Great plugin and super fast support](https://wordpress.org/support/topic/great-plugin-and-super-fast-support-9/)󠁿

 [gekk0o](https://profiles.wordpress.org/gekk0o/) March 6, 2021 1 reply

Great plugin and super fast support for problems

![](https://secure.gravatar.com/avatar/116aa61a032a4a80b2fa668652c63e6a35a8b8a8f06673f415a532f73ee118ad?
s=60&d=retro&r=g)

### 󠀁[Very useful when selling products across the EU](https://wordpress.org/support/topic/very-useful-when-selling-products-across-the-eu/)󠁿

 [](https://profiles.wordpress.org/slooffmaster/) April 26, 2018

This plugin is almost a requirement when selling goods, services across the EU. 
Works easy and out of the box with WooCommerce and my Theme (Dante).

 [ Read all 26 reviews ](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/)

## Contributors & Developers

“European VAT Compliance Assistant for WooCommerce” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ David Anderson / Team Updraft ](https://profiles.wordpress.org/davidanderson/)

“European VAT Compliance Assistant for WooCommerce” has been translated into 2 locales.
Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/woocommerce-eu-vat-compliance/contributors)
for their contributions.

[Translate “European VAT Compliance Assistant for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/woocommerce-eu-vat-compliance)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/woocommerce-eu-vat-compliance/),
check out the [SVN repository](https://plugins.svn.wordpress.org/woocommerce-eu-vat-compliance/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/woocommerce-eu-vat-compliance/)
by [RSS](https://plugins.trac.wordpress.org/log/woocommerce-eu-vat-compliance/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.36.6 – 2026-01-24

 * TWEAK: Update reduced rate for Finland in bundled fallback rates (used if online
   rates can’t be fetched)

#### 1.36.5 – 2026-01-17

 * TWEAK: Add a filter woocommerce_vat_report_include_orders_without_vat allowing
   shop owners to display in the summary report countries which had purchases but
   which had no VAT (for which, of course, the total amounts will all be zero; and
   since by definition there can be no country that the non-tax is payable to, the
   country used is the customer’s taxable address).

#### 1.36.4 – 2026-01-12

 * FIX: Order display summary failing to update on block checkout when changing 
   VAT self-certify status

#### 1.36.3 – 2026-01-07

 * TWEAK: Amend the filter introduced in 1.36.2 to be case-insensitive.

#### 1.36.2 – 2026-01-01

 * TWEAK: Add a filter wc_vat_compliance_require_country_code, allowing store owners
   who wish to force customers to explicitly include a country code (rather than
   have it handled/added implicitly) to do so

#### 1.36.1 – 2025-10-27

 * FIX: On the shortcode checkout, if a partial (only some classes) tax exemption
   is operative, then any fees added using the WC Fees API are checked for possible
   exemption
 * TWEAK: Do not call deprecated no-op resource-freeing functions after PHP 7
 * TWEAK: Replaced type-casting variants which are deprecated on PHP 8.5
 * TWEAK: Correct placement of plugin version in settings export file
 * TWEAK: Settings export file now contains WooCommerce tax tables

#### 1.36.0 – 2025-09-27

 * FIX: The block-based checkout did not apply the “Store non-valid numbers” setting
   allowing invalid VAT numbers to be recorded in the order (but not deduct taxes)
 * TWEAK: Add parameters to the wp_ajax_wceuvat_vatnumber_response filter

#### 1.35.8 – 2025-09-26

 * TWEAK: Remove a redundant code section when verifying a VAT number, and add annotations
 * TWEAK: Reverse the order in which the “Store non-valid numbers” and “Require 
   non-empty company field” are shown in the settings, and improve the descriptive
   text

#### 1.35.7 – 2025-09-24

 * TWEAK: Replace the deprecated wpo_wcpdf_shop_address_settings_text filter when
   wpo_wcpdf_get_shop_address is available
 * TWEAK: Add filter wc_vat_compliance_add_footer_with_all_zero_rated to allow suppression
   of invoice filter in the case of a valid VAT number and only zero-rated line 
   items when the number is deemed not to be the reason for no VAT

#### 1.35.6 – 2025-08-12

 * TWEAK: When processing a subscription renewal, or when pre-filling the block 
   checkout field, if the VAT number was stored with a double-prefix, then fix it

#### 1.35.5 – 2025-08-04

 * TWEAK: Update VAT rates for Romania

#### 1.35.4 – 2025-08-01

 * TWEAK: When pre-filling the checkout page, if the VAT number was stored with 
   a double-prefix, then fix it
 * TWEAK: Update VAT rate for Estonia

#### 1.35.3 – 2025-07-09

 * TWEAK: Use WC_Order::save_meta_data() instead of WC_Order::save() in WC_EU_VAT_Compliance_Record_Order_Details
   to avoid unnecessary database updates

#### 1.35.2 – 2025-06-25

 * FIX: Invalidate the cart total calcuation cache if the cart hash has changed,
   fixing the issue of “exemption based upon value” calculations on the shortcode-
   based ‘cart’ page being based upon the pre-updated cart during an update operation
 * TWEAK: Run readiness tests upon loading of the ‘Readiness Report’ tab instead
   of upon page loading, for quicker page loading and avoidance of unnecessary network
   calls.
 * TWEAK: In the order and settings exports, include information on whether the 
   designated cart page uses the cart shortcode

#### 1.35.1 – 2025-06-17

 * FIX: Fix incorrect reference to customer object during PayPal official extension
   off-site checkout
 * TWEAK: In the order and settings exports, include information on whether the 
   designated checkout page uses the checkout shortcode
 * TWEAK: In the settings export, rename woocommerce_default_country to woocommerce_base_country
   and wc_eu_vat_compliance to wc_vat_compliance

#### 1.35.0 – 2025-06-11

 * FIX: Fix regression on the block checkout by which changes to the VAT number 
   field were not feeding back to the “Order Review” section
 * TWEAK: Provide more information in some cases of WSDL layer setup failure
 * TWEAK: Replace use of xml_set_object() in nusoap code to resolve PHP 8.4 deprecations
 * TWEAK: Mark as supporting WooCommerce 4.8+ (nothing has been changed to stop 
   supporting previous versions; but this is now the official support requirement)

#### 1.34.3 – 2025-04-30

 * FIX: A further fix for the official WooCommerce PayPal extension; customer VAT
   exemptions were not applied on the non-standard AJAX call

#### 1.34.2 – 2025-04-26

 * FIX: The official WooCommerce PayPal extension uses a non-standard AJAX call 
   when calculating order totals, resulting in possible incorrect context-dependent
   identification of taxation country

#### 1.34.1 – 2025-04-22

 * TWEAK: In the “VAT compliance information” meta-box, the status had regressed
   to being shown where the VAT number should have been displaying

#### 1.34.0 – 2025-04-19

 * FEATURE: When performing VAT number validations upon subscription renewal, exempt
   from taxes (requires Subscriben 0.12.11 or later) if the user is still VAT exempt
   based upon a fresh look-up
 * TWEAK: When performing VAT number validations upon subscription renewal, prefer
   the most recent VAT number, trust the previous order’s look-up less, record unsuccessful
   results with more detail, and do not retain information from previous lookups
 * TWEAK: Prevent a PHP notice upon order placement if using the block checkout 
   with no shipping required
 * TWEAK: Prevent a PHP deprecation notice on PHP 8.2+ when self-certifying
 * TWEAK: On the WooCommerce block checkout, do not save an empty VAT number in 
   the customer object
 * TWEAK: Upon subscription renewal orders, VAT lookups for Norway and Switzerland
   should have their meta-data saved under the vat_lookup_response key
 * TWEAK: On the WooCommerce block checkout, do not prefix the country prefix to
   a VAT number that already has it
 * TWEAK: Pass indicated customer correctly to WC_Tax::get_tax_location() when getting
   a taxable address
 * FIX: Do not fetch taxation country from illegitimate/unavailable sources when
   processing a block checkout

#### 1.33.2 – 2025-04-16

 * FIX: When processing a renewal order within a subscription, WC_Order::save_meta_data()
   was not being called, resulting in updated VAT number information potentially
   not making it to the database.

#### 1.33.1 – 2025-04-07

 * FEATURE: Add an export link from the VAT information meta-box on dashboard order
   screens allowing easy export of all related information for an order (to aid 
   auditing and debugging)
 * COMPATIBILITY: Now requires PHP 7.1+ (previously required 7.0+)
 * FIX: Block-based checkout displayed notice but did not prevent order placement
   when settings required that the customer IP address and taxation address agreed
   and they did not
 * TWEAK: When a notice was shown at the checkout indicating the need for customer
   IP address and taxation address to agree, and the taxation address was also outside
   of any configured VAT zone, display the correct region adjective instead of ??.
 * TWEAK: Add a Slovakian alternative reduced VAT rate

#### 1.32.6 – 2025-02-04

 * FIX: The enhanced readiness test in 1.32.5 should have used loose, not strict,
   PHP comparison type to handle 0 and 0.0 identically.

#### 1.32.5 – 2025-01-23

 * TWEAK: Enhance the “zero-rate” readiness test to ensure that the shop owner has
   not added non-zero rates to the zero-rate tax class
 * TWEAK: Update the Slovakian standard VAT rate
 * TWEAK: Update updater library to current release

#### 1.32.4 – 2025-01-16

 * FIX: When converting data from HPOS format during report generation, sort the
   intermediate results to avoid needing further database calls, affecting performance
 * FIX: Ensure that order meta-data is saved if insertion of order time order number
   was required during report generation
 * TWEAK: Allow HMRC authentication for sites without any usable encryption key (
   stores the key in the database unencrypted, which still requires an attacker 
   to gain access to your database via a security vulnerability to gain the HMRC
   token which then only allows him to look up UK VAT numbers). Such sites have 
   neither SECURE_AUTH_KEY nor DB_PASSWORD set in wp-config.php.
 * TWEAK: Cause explanatory text to appear by the “Price display suffix” in the 
   WooCommerce tax settings

#### 1.32.3 – 2025-01-06

 * TWEAK: For HMRC VAT lookup authentication, fix encryption support for sites that
   had defined an unusable SECURE_AUTH_KEY

#### 1.32.2 – 2025-01-03

 * FIX: In the block-based check-out, do not try to carry out region-related operations
   outside of a VAT region upon order placement

#### 1.32.1 – 2024-12-23

 * FEATURE: Can look up UK VAT numbers using HMRC’s v2.0 lookup service (Premium
   version). Note: HMRC are turning off their v1.0 lookup service in January 2025.
   If you are using this then you _must_ obtain a (free) HMRC account and go through
   an authorisation procedure, in the “VAT number lookups” section of the plugin
   settings; otherwise, your UK VAT number lookups will fail in January. N.B. You
   can alternatively use the integrated VATSense service.
 * FEATURE: Access keys from HMRC for UK VAT number lookups are now stored in your
   database encrypted, assuming that the SECURE_AUTH_KEY constant is set. (N.B. 
   Changing the value of this constant will require re-authenticating).
 * TWEAK: Make explicit the requirement for PHP >= 7.0 (which was already required
   by the minimum supported WooCommerce version)
 * TWEAK: Mark as requiring WordPress 5.3+ (which was already required by the minimum
   supported WooCommerce version)
 * TWEAK: Do not escape tags in tax summary table
 * TWEAK: Update jQuery tablesorter to 2.32.0 (https://github.com/Mottie/tablesorter/)

#### 1.31.5 – 2024-12-02

 * FIX: Fix a regression in the “tax class transition” option display in 1.31.4

#### 1.31.4 – 2024-11-14

 * TWEAK: Resolve dynamic property deprecations in WC_VAT_Compliance_Preselect_Country
 * TWEAK: Resolve premature language domain loading in WP 6.7
 * FIX: Fix regressions in order recording in the short-lived 1.31.2

#### 1.31.1 – 2024-10-04

 * FIX: Prevent unwanted VAT number/address substitutions happening on the block
   checkout page
 * FIX: Avoid using an unavailable variable in the block checkout
 * TWEAK: Prevent an unwanted JavaScript console message
 * TWEAK: Update Finnish standard VAT rate (now 25.5%)
 * TWEAK: Update URL for Russian Central Bank’s exchange rates

#### 1.31.0 – 2024-08-27

 * FEATURE: Block checkout support. Since this is a new feature, tested internally
   and by a small number of existing customers, for the next couple of months or
   so you should consider this as being in “beta” status, and perform your own testing(
   since the plugin has a large variety of different configuration combinations 
   possible)
 * FIX: Caching of cart totals should allow variation based upon the current shipping
   method(s)
 * TWEAK: Mark as supporting WooCommerce 4.5+ (nothing has been changed to remove
   WC 3.8-4.4 support, but this is our official support requirement; WooCommerce
   4.5 was released in September 2020)

#### 1.30.3 – 2024-08-06

 * FIX: The “VAT number valid” column in the detailed CSV download could display
   an incorrect value
 * TWEAK: When checking tax tables for recognised rates, ignore any entries that
   are for specific postcodes or cities (consistent with how entries for specific
   states are already ignored)
 * TWEAK: When parsing results from the VATSense rates API, exclude any zero rates,
   for consistency with existing rates format

#### 1.30.2 – 2024-04-13

 * FIX: A regression in version 1.27.21 (released 7th Feb 2023) meant that if your
   shop sold orders in a different currency to your configured VAT reporting currency
   in the plugin settings, then conversions were carried out incorrectly in the 
   summary report table in “WooCommerce -> VAT Compliance -> VAT Reports”. Consequently,
   the reports contained incorrect totals. As such, shops selling in multiple currencies
   may wish to re-run these reports after updating to this version, and compare 
   them with the VAT payments they made to see if they need to adjust past reports.
 * TWEAK: Update updater library (Premium version) to latest version

#### 1.30.0 – 2024-02-01

 * FEATURE: Added experimental support for Switzerland (which is not a part of the
   EU). VAT number lookup support is via vatsense.com. Users can choose their preferred
   combination of zones (EU/UK/Norway/Switzerland)
 * TWEAK: Add filter woocommerce_vat_compliance_log_woocommerce_customer_taxable_address_exceptions
   to stop logging exceptions raised by WooCommerce core in that method if desired

#### 1.29.11 – 2023-01-04

 * TWEAK: Update VAT rates for Luxembourg and Estonia

#### 1.29.10 – 2023-12-29

 * TWEAK: Add missing context check before calling wc_add_notice() when reporting
   on VAT number validity in the back-end with too-short numbers
 * TWEAK: Update updater library version

#### 1.29.8 – 2023-12-13

 * TWEAK: Some minor refactoring within the VAT number and shortcode checkout classes
   to enable future improvements
 * TWEAK: Move description of HPOS compatibility to the correct part of the readme.
   txt to avoid ambiguity about which versions this applied to (it applies to both
   free and paid versions)
 * TWEAK: Prevent a PHP notice being logged if the add_meta_boxes is called from
   the front-end (e.g. UpdraftCentral)
 * TWEAK: Update updater library to current series

#### 1.29.7 – 2023-11-03

 * FIX: HMRC (UK) again moved the URL at which they provide their official exchange
   rate XML data

#### 1.29.6 – 2023-10-05

 * FIX: Fix a regression in the 1.29.2 release which could improperly prevent the
   VAT number field being displayed on the checkout

#### 1.29.3 – 2023-10-03

 * FIX: Fix a regression in reporting in yesterday’s 1.29.2 release which could 
   result in incomplete data being used to build the report
 * TWEAK: Adjust how reporting queries are logged to make them easier to read

#### 1.29.2 – 2023-10-02

 * REFACTOR: All JavaScript for the checkout is now abstracted into a static (and
   cacheable) file, instead of being generated inline. Developers who have written
   custom PHP code should test their code carefully, and adjust where needed.
 * TWEAK: Add a constant WC_VAT_REPORTING_LOG_QUERIES to aid with report generation
   debugging
 * TWEAK: Increase speed of report generation by not running a final query if the
   previous query result set was between empty and matching the full page size
 * TWEAK: The filter for the checkout message stating that the VAT number is not
   long enough has been changed to wc_vat_msg_not_long_enough (as the previous filter
   name was unintentionally duplicated)
 * TWEAK: Mark as requiring WP 5.0+; nothing explicit has been done to remove compatibility
   with earlier versions, but this is the updated support requirements)
 * TWEAK: Fix invalid nesting of HTML tags on the checkout

#### 1.29.1 – 2023-09-30

 * FIX: Fix a regression in 1.29.0 that caused the self-certify radios to display
   incorrectly

#### 1.29.0 – 2023-09-28

 * FEATURE: Provide an option to always use the customer IP address for complete
   determination of the taxation country – potentially suitable for shops that are
   subject to special provisions only requiring one evidence of location (and who
   do not with to use the billing country)
 * TWEAK: Remove unwarranted specificity from the default message when a cart is
   forbidden
 * TWEAK: Add $cart_exempt parameter to wc_vat_woocommerce_product_get_tax_class_zero_rate_class
   filter
 * TWEAK: Add filter wc_vat_exempt_shipping_rate_taxes to allow modification of 
   empty final output of WC_EU_VAT_Compliance_VAT_Number::woocommerce_shipping_rate_taxes()
 * TWEAK: Declare class variables explicitly because of deprecation of dynamic properties
   on PHP 8.2
 * TWEAK: Declare class variables in nusoap library explicitly because of deprecation
   of dynamic properties on PHP 8.2
 * TWEAK: Do not allow a default country (from the customer object or store) to 
   be used during checkout processing
 * TWEAK: Tweak settings tip for VAT Number message
 * TWEAK: Replaced strftime(), which is deprecated since PHP 8.1
 * TWEAK: Supply any checkout VAT number through the woocommerce_checkout_posted_data
   filter

#### 1.28.2 – 2023-06-14

 * FIX: Correct an SQL query used as an update task on HPOS order meta items
 * TWEAK: Allow HPOS status to be checked during plugins_loaded

#### 1.28.1 – 2023-06-05

 * FIX: When the shop was based in a VAT region for which the settings did not indicate
   that VAT accounting should take place (which is an erroneous setting; all countries
   require VAT accounting to take place in their own country), B2B VAT exemptions
   were not performed correctly for cross-border sales into a different VAT region.

#### 1.28.0 – 2023-05-29

 * FEATURE: Supports WooCommerce high-performance order storage (https://woocommerce.
   com/document/high-performance-order-storage/). Since HPOS is a large and invasive
   change, we recommend you test your site on it carefully. Developers should note
   the changelog items below.
 * FEATURE: Support currency conversions in the PDF invoice templates of PDF Invoices&
   Packing Slips for WooCommerce – Premium Templates (WP Overnight) – https://wpovernight.
   com/downloads/woocommerce-pdf-invoices-packing-slips-premium-templates/
 * DEVELOPERS: (Potentially breaking change): The sixth parameter to the filter 
   woocommerce_vat_compliance_get_report_sql has changed – it is now an array – 
   and the seventh has been removed entirely. If you had written custom code that
   uses this filter, then you should review and test it to ensure that it still 
   works.
 * DEVELOPERS: Because of adding compatibility for WooCommerce High Performance 
   Order Storage, the SQL query received by each of the woocommerce_vat_compliance_get_refunds_sql
   and woocommerce_vat_compliance_get_report_sql filters is now different. If using
   these filters, you will need to re-work them for HPOS compatibility.
 * DEVELOPERS: The filter wc_eu_vat_compliance_report_meta_fields is deprecated,
   and has been replaced with the filter wc_eu_vat_compliance_report_extra_meta_fields.
   Please adapt your code to use the new filter; the old one will be removed in 
   a future release. See: https://www.simbahosting.co.uk/s3/faqs/when-downloading-
   a-detailed-csv-how-can-i-add-an-extra-column/

#### 1.27.27 – 2023-05-06

 * FEATURE: If a VAT Sense API key has been added (Premium version), then VAT Sense
   will be used as the preferred source for up-to-date VAT rate information
 * TWEAK: Update Luxembourg’s current VAT rate (should also be pulled from the Internet
   by existing installs before updating to this release)
 * TWEAK: Remove no-longer maintained Aelia data-source for VAT rates
 * TWEAK: Provide a filter woocommerce_vat_widget_without_vat_on_address_save_with_vat_number
   to allow site owners to turn off the default behaviour of showing prices without
   VAT when the customer saves a VAT number in their profile.
 * TWEAK: Adjust behaviour of setting the visitor’s preference to show prices without
   VAT upon saving an address with a VAT number to not do so if the customer was
   in the store base country and is not deducting VAT from such customers

#### 1.27.26 – 2023-04-07

 * FIX: The “Order number” column in the detailed CSV download was empty (since 
   1.27.21); it now has this capitalisation instead of “Order Number”, so if any
   developers have written customer PHP code to target this column, they will need
   to adjust
 * FIX: If the site was running in a non-English language, then (since 1.27.21) 
   in the detailed CSV spreadsheet (Premium feature) any columns which had translated
   headings would have empty values
 * TWEAK: Handle Cloudflare’s “T1” and “XX” pseudo-country codes (recognise as not
   referring to any actual country)

#### 1.27.25 – 2023-04-03

 * TWEAK: Get the selected drop-down country over AJAX, in order to make the drop-
   down country selector compatible with per-country page-caching.

#### 1.27.24 – 2023-03-29

 * FIX: When the store’s base country is in one of the UK/Isle of Man, France/Monaco
   pairs, then a transaction should be subject to base country rules if the taxation
   country is the other member of the pair
 * TWEAK: Prevent a potential PHP notice when running under cron

#### 1.27.23 – 2023-03-21

 * FEATURE: When checkout orders are recorded with the final taxable address determined
   with the aid of self-certification, this information is now recorded explicitly
   and displayed in the dashboard order page metabox (previously it as implicit)
 * TWEAK: Use data from WC’s get_posted_data() method rather than $_POST directly
   in a couple of places
 * TWEAK: Remove superceded internal “deduction setting” code
 * TWEAK: Add wc_vat_compliance_log_no_line_total filter to suppress potentially
   unwanted logging
 * TWEAK: Update Premium version’s updater library to latest version
 * TWEAK: Settings in the “Other WooCommerce tax options potentially relevant for
   VAT compliance” section are now read-only, to avoid user confusion about which
   component implements the settings

#### 1.27.22 – 2023-02-25

 * FIX: Country pre-selection was erroneously not using GeoIP lookups if the legacy
   plugin option was inactivate but the WooCommerce core option was active
 * FIX: Fix regression in 1.27.21 which resulted in zero-rating no longer being 
   applied for partial exemptions and value-based exemptions
 * TWEAK: Update .pot file
 * TWEAK: Move registration of action that outputs VAT number field until init, 
   to allow shop owners to access the associated filters in child theme code
 * TWEAK: Add page output time to debugging footer when activated
 * TWEAK: In one specific situation, the debugging footer could include incorrect
   information on how the visitor country was determined
 * TWEAK: Avoid unintended use of deprecated dynamic property in WC_VAT_Compliance_Preselect_Country
   class

#### 1.27.21 – 2023-02-07

 * TWEAK: Add filter wc_vat_woocommerce_product_get_tax_class_zero_rate_class to
   allow a different tax class to the WooCommerce default one to be used as the 
   designated zero-rate class.
 * TWEAK: Rename internal “Date” column in detailed CSV download to “Date (local)”
   to match the spreadsheet column heading; any developers who had written custom
   PHP code targetting this column will need to adjust their code.
 * TWEAK: Filters related to the detailed CSV download did not allow removal of 
   columns from the base spreadsheet; now they do.
 * TWEAK: Filters related to the detailed CSV download now allow columns to be re-
   ordered.
 * TWEAK: wc_eu_vat_compliance_csv_data_entries filter now has an extra parameter
   available containing order details after currency conversion

#### 1.27.20 – 2023-01-20

 * FIX: Prevent a potential infinite recursion (since 1.27.15) on the cart page 
   when ascertaining the taxation country
 * FIX: Fix a regression (since 1.27.17) which could prevent the customer-chosen
   conflict resolution choice from takin effect
 * TWEAK: Log a message if a cart item has no line_item_total key.

#### 1.27.18 – 2023-01-11

 * FIX: Work around a problem in 1.27.17 when renewing subscription orders that 
   were created when the plugin wasn’t active caused by a function needed by WooCommerce’s
   tax methods only being loaded on the front-end.

#### 1.27.17 – 2023-01-09

 * TWEAK: When creating subscription renewal orders, set the current WooCommerce
   customer to the order customer, to work around the WooCommerce filter woocommerce_customer_taxable_address
   not passing any customer identifier

#### 1.27.16 – 2022-12-01

 * FEATURE: Add support for exchange rates from the Romanian National Bank

#### 1.27.15 – 2022-11-26

 * TWEAK: Always run the country calculation during the woocommerce_checkout_process
   action, to fix a site with a custom checkout flow where session retrieval sometimes
   failed at this stage
 * TWEAK: Do not allow use of request variable during checkout processing
 * TWEAK: Allow woocommerce_admin_billing_fields method to be called from a front-
   end context, to avoid a problem caused by a third-party extension doing that
 * TWEAK: Change how saving of meta-data is performed in woocommerce_process_shop_order_meta
   hook to prevent conflicting with an issue in a currency switcher plugin.

#### 1.27.14 – 2022-10-28

 * FIX: The last release introduced an accidental requirement for PHP 7.3+

#### 1.27.13 – 2022-10-26

 * TRANSLATION: Updated nl_NL translation, thanks to Robin De Winter

#### 1.27.12 – 2022-10-19

 * TWEAK: Fine-tune VatSense result handling for Norwegian VAT numbers
 * TWEAK: Add filter woocommerce_vat_show_prices_without_vat_on_login allowing site
   owner to not cause prices to be shown without VAT upon login even if the customer
   stored a VAT number without profile
 * TWEAK: Prevent WooCommerce core raising a PHP notice due to no CSS class on user
   profile checkbox
 * TWEAK: Update update checker library to latest version
 * TWEAK: Add filters woocommerce_vat_compliance_get_items_sql, woocommerce_vat_compliance_get_refunds_sql
   and woocommerce_vat_compliance_get_report_sql to allow modification of the SQL
   used to fetch relevant data for building reports
 * TWEAK: Add filter wp_ajax_wceuvat_vatnumber_response to the AJAX action response
   for users who want to adapt messages returned from the VAT-number checking service
 * TWEAK: If a subscription renewal order is created where the original order does
   not have previous information present for the taxable country, then an attempt
   to add this information will be made.
 * TWEAK: Move HTML entity outside of translation string and regenerate POT file
   to correct previous error

#### 1.27.11 – 2022-09-24

 * FEATURE: When a new order is created in the WooCommerce admin dashboard screen,
   any VAT number entered will be validated; if valid, the customer will be set 
   as tax-exempt (VAT number validation is a Premium feature).
 * TWEAK: The “Load billing address” link when editing an order manually will import
   the customer’s saved VAT number
 * TWEAK: Settings export now includes WooCommerce base country
 * TWEAK: Remove debugging lines related to base rate fetching that were accidentally
   left in a previous version
 * TWEAK: Also display invalid entered VAT numbers in an order’s VAT compliance 
   meta-box (including the information that it was invalid)
 * TWEAK: Include the “standard rates” tax table in the list of quick links in the“
   Tax tables” section

#### 1.27.10 – 2022-09-08

 * TWEAK: Update .pot file
 * TWEAK: Add “Moms” to the list of labels used for VAT taxes
 * TWEAK: Adjust the description for the list of VAT taxes setting to reflect its
   current use, improve the layout and add a link to the tax tables for clarity
 * TWEAK: Update the link to the official EU list of VAT rates
 * TWEAK: Update to latest version of the plugin updater library (Premium)

#### 1.27.9 – 2022-09-05

 * FIX: After adding a new VAT region over-ride to the settings and saving it, attempts
   to remove it failed

#### 1.27.8 – 2022-09-03

 * FIX: At least one third-party PayPal express checkout needed extra code to retain
   the VAT number and other details in the session for the order to record it at
   the end of the off-suite flow
 * TWEAK: Removed debugging log message included in 1.27.7

#### 1.27.7 – 2022-08-27

 * TWEAK: Run the woocommerce_get_price_suffix filter when DOING_AJAX is true also(
   for plugins that fetch front-end content snippets over AJAX)
 * TWEAK: Lower priority of a couple of hooks which record audit data, so that they
   are more likely to run successfully if there is another plugin on the site which
   uses the same hooks and causes a fatal error before our code got to run

#### 1.27.6 – 2022-07-04

 * TWEAK: Adjust default filename for saving short summary reports
 * TWEAK: Add new filters (wc_vat_compliance_currency_converted_order_data_use_order_saved_data,
   wc_vat_compliance_currency_converted_order_data_use_conversion_time, wc_vat_compliance_currency_converted_order_data_use_rate,
   wc_vat_compliance_currency_converted_order_data_use_provider) which allow developers
   to modify the date used for currency conversion lookups for reporting data.

#### 1.27.5 – 2022-06-20

 * FIX: Fix incorrect JSON parsing of the new IP address lookups from https://ipapi.
   co introduced in 1.27.4

#### 1.27.4 – 2022-06-18

 * FEATURE: Handle admin-area editing of taxes – save the new tax information if
   updates are applied in the admin area (and also save the original non-admin information
   for audit purposes)
 * FEATURE: If WooCommerce has saved an IP address for the order, but the plugin(
   for whatever reason – e.g. order created through custom means) has not recorded
   a GeoIP lookup for the IP address, then this will now be performed if viewing
   the order’s dashboard page. These lookups may be performed via the public API
   at https://ipapi.co – if this is undesirable for you, then add `define('WC_VAT_COMPLIANCE_DO_REMOTE_IP_LOOKUPS',
   false);` to your wp-config.php file.
 * TWEAK: Adjust the “No further information recorded” message for greater precision.
 * TWEAK: Add the WC_Order to the parameters of the wc_eu_vat_compliance_meta_country_info
   filter

#### 1.27.3 – 2022-06-11

 * TWEAK: Introduce filter wc_vat_order_reporting_currency, useful for providing
   reports in other currencies
 * TWEAK: Prevent type error when taxation country is set but an empty string
 * TWEAK: Remove no-longer-relevant help message from WooCommerce’s “Default Customer
   Address:” setting

#### 1.27.2 – 2022-05-10

 * FIX: Fix a logic error in what country was saved in the session upon order review
   when taxation was based on shipping country and it differed from the billing 
   country
 * TWEAK: Suppress premature “The VAT number entered is not long enough to be valid
   for the chosen country” message that appears in recent WC versions
 * TWEAK: Upgraded the .pot file
 * TWEAK: Added filter wc_vat_compliance_include_order_in_report upon user request
   to allow programmer-controlled removal of orders from VAT reports

#### 1.27.0 – 2022-04-26

 * FEATURE: The capability to use the plugin’s GeoIP resolution on all relevant 
   pages is now exposed as an option, defaulting to off for new installs (since 
   WooCommerce now has its own GeoIP resolution), and on for upgrades (reflecting
   the previous default behaviour). As part of the related changes, the country-
   selection widget and/or dropdown can now be used without having to accept the
   plugin’s own GeoIP resolution.
 * TWEAK: The class WC_EU_VAT_Compliance_Preselect_Country has been renamed to WC_VAT_Compliance_Preselect_Country;
   if you had hand-written PHP code that interacted with it, you will want to review
   it
 * TWEAK: The constant WC_EU_VAT_LOAD_ALL_CLASSES has been renamed to WC_VAT_LOAD_ALL_CLASSES
 * TWEAK: Mark as requiring WP 4.7+; nothing explicit has been done to remove compatibility
   with earlier versions, but this is the updated support requirements)
 * TWEAK: Mark as supporting WooCommerce 3.8+ (nothing has been changed to remove
   WC 3.5-3.7 support, but this is our official support requirement)

#### 1.26.6 – 2022-03-29

 * TWEAK: Add “Aelia EU VAT Assistant” as description of source of IP/country data
   when the data stored so indicates
 * TWEAK: The debugging constant WC_EU_VAT_DEBUG has been replaced with WC_VAT_DEBUG
 * TWEAK: Do not register certain hooks related to country pre-selection in an admin
   context

#### 1.26.5 – 2022-03-15

 * FEATURE: Any customer-entered VAT number (available in the Premium version) is
   now editable in the ‘billing address’ section of the WooCommerce order admin 
   screen

#### 1.26.4 – 2022-03-09

 * TWEAK: Change columns headings “VAT is variable” to the more precise “VAT is 
   based on customer location” in detailed CSV spreadsheet download
 * TWEAK: Make sure that the first parameter to round() is converted to a float,
   to prevent PHP 8.0+ type errors
 * TWEAK: Update the detection of buggy third-party plugins calling woocommerce_checkout_order_processed
   with insufficient actions for PHP 8.0 compliance

#### 1.26.3 – 2022-02-05

 * TWEAK: Change the multi-select HTML control for forbidding VAT checkout in specified
   regions into a list of checkboxes, to eliminate support requests from users unfamiliar
   with multi-selects and unable to succeed even with the attached help-text. Also
   improves UI consistency with the controls used elsewhere.
 * TWEAK: Update to latest version of the paid plugin updater library

#### 1.26.2 – 2022-01-25

 * FIX: Fix a couple of cases in which it was possible for the VAT-exemption tatus
   to change without the checkout summary updating
 * TWEAK: Update to latest version …

## Meta

 *  Version **1.36.6**
 *  Last updated **4 months ago**
 *  Active installations **3,000+**
 *  WordPress version ** 5.3 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.1 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/woocommerce-eu-vat-compliance/),
   and [Spanish (Spain)](https://es.wordpress.org/plugins/woocommerce-eu-vat-compliance/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/woocommerce-eu-vat-compliance)
 * Tags
 * [eu vat](https://wordpress.org/plugins/tags/eu-vat/)[iva](https://wordpress.org/plugins/tags/iva/)
   [moss](https://wordpress.org/plugins/tags/moss/)[vat compliance](https://wordpress.org/plugins/tags/vat-compliance/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/woocommerce-eu-vat-compliance/advanced/)

## Ratings

 4.8 out of 5 stars.

 *  [  25 5-star reviews     ](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/?filter=2)
 *  [  1 1-star review     ](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/reviews/)

## Contributors

 *   [ David Anderson / Team Updraft ](https://profiles.wordpress.org/davidanderson/)

## Support

Issues resolved in last two months:

     1 out of 1

 [View support forum](https://wordpress.org/support/plugin/woocommerce-eu-vat-compliance/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://david.dw-perspective.org.uk/donate)