Engineering Spotlight

Brexit and Changes to WooCommerce Core Code


While there are still many unknowns for eCommerce merchants as they pass across the January 01, 2021 Brexit transition deadline, the WooCommerce Core team is taking steps to ensure the platform continues to provide functionality that accurately reflects the concurrent changes to economic, geographic, and political classifications in and around the UK.

The Details

The scope of this post is intended to be limited to recent and forthcoming changes to the functionality of WooCommerce Core to prepare it for the Brexit transition deadline. We understand, however, that merchants who rely on developers’ extensions may have many questions about how to adjust their workflows in WooCommerce to comply with new rules and regulations that took effect on January 1, 2021. We also know that many WooCommerce Developers are merchants themselves.

With that in mind, this post will primarily highlight some of the recent work on the WooCommerce Core codebase, but we will also provide links to resources that developers should read and share with merchants who need guidance or additional information to make sure their stores are compliant.

What has happened so far?

When WooCommerce 4.0 was released in February of 2020, it included an update that refactored how the WC_Countries class handles calls to functions that return information about countries in the European Union and countries using VAT. This update introduced two notable changes:

  • It removed Great Britain from the array that is returned when you call get_european_union_countries() with no arguments.
  • It introduced a new method get_vat_countries() which returns an array of countries that use VAT.

You can read more about these changes in the associated Pull Request on GitHub.

Note: The Pull Request linked above also deprecated an optional argument in the get_european_union_countries() method which would return a list of countries in the European Union VAT zone, but that deprecation was reverted in a subsequent release due to a bug that caused this function to return non-EU countries that use VAT.

What is happening right now?

There was a Pull Request on GitHub where the WooCommerce Core team made additional adjustments to prepare WooCommerce for the end of the Brexit transition period. Those changes merged on December 16th, 2020 and will be included in WooCommerce 4.9, which is currently slated for release on January 12th, 2021. There are still many unknowns and grey areas in what is an increasingly complex overlap of political and economic domains. Our internal teams are actively discussing additional changes that may need to be made in order to support merchants encountering unforeseen situations, such as this one related to Northern Ireland for example, which will have a dual position in the EU Customs Union, Single Market, and VAT regime.

What action do I need to take?

The short answer is: it depends. Every merchant is in a slightly different situation based on factors such as their location and the markets in which they conduct business. Against that background, it would not be prudent of us to provide detailed advice around legal or accounting matters. As a starting point, however, we are recommending everyone visit the official Brexit Transition website, where businesses and citizens alike can find information to help them remain in compliance. Below are a few resources from that site that may be helpful to merchants who are looking for guidance:

Likewise, here are a few links to WooCommerce that may be helpful for merchants who need to:

As we learn more and proceed with additional changes to the core codebase that relate to the recent Brexit transition deadline, we will be sure to keep you updated here on the WooCommerce Developer Blog. If you have questions or concerns, please don’t hesitate to reach out to us in the comment section below or in the #developers channel of the WooCommerce Community Slack.

By Allen Smith

I'm a dad who loves telling stories, connecting people, and making the world a better place.