WooCommerce EU/UK VAT Compliance – Frequently Asked Questions

We don’t have a huge number of FAQs here because, frankly, there haven’t been a huge number of questions that get repeatedly asked. If you go to the VAT Compliance control centre in your dashboard (WooCommerce -> VAT Compliance), then all of the plugin’s features and capabilities are collected there in a single handy place, and there is substantial in-line help available with each function. Consequently, if you go through the various things you can find there, you will usually find what you are looking for.

N.B. The FAQs here are for the Premium version of the plugin, as well as the free. If you are running the free version and the below references a feature you do not have, then that is the likely reason.

WooCommerce EU/UK VAT Compliance – Documentation index

Questions applying to all our commercial WordPress plugins

How long do you provide access to new plugin releases and support for?

All plugin purchases come with included access to support and access to downloads for 12 months. After 12 months, you can renew access if you want to.

If you do not want to renew, then your existing plugin will not be de-installed or de-activated or changed in any other way. Of course, we cannot guarantee what level of compatibility it will have with future releases of WordPress or (if relevant) WooCommerce.

Do you have a trial version of your plugins available / what is your refund policy?

We do not have trial versions of our plugins available, or refund trial purchases. However, we are committed to providing support for any technical issues you have with any of our plugins, and all plugins include 12 months of support. If the plugin does not do what the product description says it does, then you can have a refund (this should be requested within 10 days of purchase), subject to allowing us to investigate the problem.

This policy specifically excludes third-party failures; for example, if a plugin depends upon a third-party service which malfunctions or closes down, you will not be eligible for any refund for the plugin purchase. It also explicitly excludes failed attempts by the customer to implement PHP code customisations to the plugin, and faults in third-party code. Refunds are not offered for “speculative” purchases where the customer is hoping that the software can do something which is not advertised; plugins are priced cheaply and you should check your requirements before purchase.

For EU customers, your right to a refund of digital goods that you have not requested a download of remain intact. You can request a refund of goods that have not yet been downloaded for up to 14 days after purchase. These requests will be verified using our download logs.

How can I download a PDF invoice/receipt for my purchase?

You can download a PDF invoice/receipt for plugins purchases from your account page, here.

How many licences should I buy?

You will need a separate licence for each WordPress installation which you wish to receive plugin updates (i.e. future releases), or to request support for.

A WordPress Network is a single installation of WordPress, so only requires one licence, regardless of how many blogs you have on the network.

What is your support and updates policy?

All customers will have access to future releases of the plugin, and for support to help with trouble-shooting, for 12 months.

Whilst we are happy to give general advice as part of support, support has reasonable limits. For example, hiring a developer (if one is available) to extend or customise the plugin for you, or trouble-shooting problems in other plugins on your site (or other things beyond scope – e.g. problems in your printer, or other third-party products), is not included in the purchase price.

Note that this does not affect your ability to continue using an installed plugin. Your installed plugins will remain installed forever. What is limited to 12 months is access to our future work on the plugin and support.

Can you write some code for me, to customise the plugin?

Plugin purchase prices do not include hand-written code, even if it is only a few lines.

At commodity prices, and including 12 months of updates to new versions (including compatibility with future releases of WordPress and (where relevant) WooCommerce), and personal support, the margins when selling plugins are small. As a result, plugin sellers rely upon selling to many customers – and personal customisations are not economic (even if potentially useful for other customers).

You are, of course, welcome to send in ideas for new features. If you need a developer to customise for you, though, then we suggest Codeable – https://codeable.io – where there is a large marketplace of WordPress and WooCommerce experts offering their services.

Where can I download my plugin purchase?

After purchasing one of our WordPress plugins, you can download from any of three or four places:

  1. The “thank you” page in your web browser, that appears immediately after completing payment.
  2. From your Simba account, here.
  3. Using the link in your order confirmation email.
  4. If you have already installed and begun using the plugin, you can obtain updates (when available) from the “Plugins” page in your WordPress dashboard.

How do I install my plugin?

If you’ve purchased one of our WordPress plugins, then thank you! Here’s how to install…

1. Go to the “Plugins” page in your WordPress dashboard, and press “Add New”

Add a new plugin

2. Press the “Upload Plugin” button

Upload a plugin

3. Press the button to select a zip file. Select the zip file for your plugin. Then press “Install Now”.

Uploading the zip file

4. When the plugin has uploaded, press the “Activate” button.
Activate

N.B. If you have the free version of any of our plugins (e.g. WooCommerce EU VAT Compliance, or Two Factor Authentication), then you should also de-activate and de-install the free version. Your settings will be retained by the paid version. It does not matter whether you de-activate and de-install before, or after, installing the paid version.

When buying a plugin, what is the difference between manual or automatic renewal?

All our plugins come with included access to personal support and updates (new versions of the software) for 12 months (more information). After this 12 months, you can keep on using the software, without any restrictions. However, if you want to renew, you can either do so manually (i.e. come back to the shop and make a fresh purchase) or automatically (i.e. an order will automatically be created and emailed to you, and payment taken if you have a payment method on your account). We offer a discount to those who choose automatic renewal. You can cancel a subscription at any time (yes, even 5 minutes after you purchased it).

Where can I see the plugin changelog?

For a plugin that you have purchased, the changelog is in the file “readme.txt” in the plugin zip.

For our current on-sale version (i.e. the latest version), you can see the changelog by going to the shop, and then going to the product page, and then clicking the link “Plugin changelog” from the left-hand side of the page.

How do I change which site is using a licence?

If you wish to stop using one of your plugin licences on one site, and instead use it on another, then do this:

1. Disconnect the “old” site.

Go to the “Plugins” page in the WordPress dashboard, and find the plugin’s entry. Press the “Disconnect” button.

Disconnecting

2. Connect the “new” site.

Go to the “Plugins” page in the WordPress dashboard on the new site, and connect.

Connecting

I have found a problem in the plugin, or a question not answered here. Where do I get personal support?

Please go here and open a support ticket. (Or, if you forgot your login details for your account with us, then please go here).

Is this plugin still supported and maintained?

Yes. If it ever stops being, then we would withdraw it from sale.


WooCommerce EU/UK VAT Compliance

How can I have multiple countries treated as my base country?

In the VAT plugin settings, there are several settings which make your “base country” differ from other countries. The “base country” is set within your WooCommerce core settings.

Occasionally, a business wants another country to also be subject to the “base country” rules which the VAT compliance extension applies.

This can be done with a few lines of code placed in an mu-plugin, or in your functions.php. The filter to use is wc_eu_vat_get_base_countries. You should use the two-letter country codes used internally by WooCommerce.

add_filter('wc_eu_vat_get_base_countries', 'my_wc_eu_vat_get_base_countries');
function my_wc_eu_vat_get_base_countries($countries) {
// Add Germany to the existing array of countries;
$countries[] = 'DE';
return $countries;
}

How can I change the position of the VAT number box on the WooCommerce checkout page?

You can do this using the wc_eu_vat_number_position and wc_eu_vat_number_priority filters. You should set the first filter value to be any position which your WooCommerce template supports, using WordPress’s standard filtering mechanism. The second is a priority, for when there are multiple items using the same position. In this context, a “position” means an WordPress action which your template calls.

The default position is woocommerce_checkout_billing (this corresponds to the WordPress action of that name; it is the default because all templates will somewhere call that action) and the default priority is 40. Here is an example of changing the position to woocommerce_checkout_after_customer_details:

add_filter('wc_eu_vat_number_position', function () { return 'woocommerce_checkout_after_customer_details'; }

To know what positions (actions) exist in your template, you need to either read its code (if you know how to do that), or to speak to a competent developer, or the theme author. Unfortunately it is not easy to automatically get such a list, and beyond the scope of the VAT plugin.

Note that not every template position is a technical possibility – you need to keep it within the main body of address selection. This is because of assumptions (which may not stay the same over time) that WooCommerce makes about the internal structure of the checkout page.

Concerning customisation of the above code, if you do not have your own PHP developer working on the project: this FAQ may also be relevant: Can you write some code for me, to customise the plugin?

A customer is not being charged the correct VAT rate – how do I resolve this?

All tax calculations in WooCommerce are carried out by WooCommerce core, according to the tax rate tables you have configured in the WooCommerce settings. They are not altered by this plugin – because it does not need to (WooCommerce core already has complete features in this area). The only way that this plugin gets involved is by setting a flag for an order to be exempted from tax, if a valid VAT number has been entered. Otherwise, all taxes are calculated according to your tax rate tables, which you can find in your dashboard in WooCommerce -> Settings -> Taxes -> (Tax Rate Tables). For official documentation on taxes in WooCommerce, go here.

You should make sure that you keep your tax rates up to date; so, you should make sure that you are aware of changes to VAT rates across the EU and/or UK (e.g. by following news on a website like VAT Live). To help you keep your rates up to date, the plugin provides two facilities which you can use:

1) In your dashboard, in WooCommerce -> VAT Compliance -> Readiness Report, the plugin will report on whether it believes your VAT rates are up to date.

2) In WooCommerce -> Settings -> Taxes -> (Tax Rate Tables), there is a button to press that can update your current tax rate table entries to match a full set of current VAT rates (at either standard, or reduced rate).

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, optionally including an option for displaying prices without taxes. The shortcode is euvat_country_selector, and optionally takes parameters:

  • “include_notaxes” which you can set to “true” or “false”.
  • “include_which_countries” which can take the values “all” (default), “shipping” or “selling”, depending upon whether you want to display all countries, or just those that WooCommerce is configured to ship to, or sell to.

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

This is not strictly a VAT compliance issue, and so does not come under the 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). Nevertheless, WooCommerce has an experimental feature which is not exposed in its settings to enable you to do this. You can activate it from the VAT compliance settings (in the ‘Settings’ tab). Note that the only effect of the setting is to turn on the feature in WooCommerce core; if that feature does not work, we cannot provide further support for it.

Can customers be shown the correct VAT rate as soon as a visitor comes to the site?

Yes, this happens by default when the plugin is active. You should go to WooCommerce -> VAT Compliance -> Readiness Report in your dashboard to verify that it is working.

How can I disable any checkout notice that I do not wish to be displayed?

The easiest way to do this is to add a CSS rule to your site that tells browsers never to display the element.

To do this, first, identify the CSS class of the notice. The easiest way to do this is to right-click on it, and choose your browser’s “Inspect Element” option. This will bring up the browser’s DOM inspector:

DOM inspector

In the above screenshot, the element has a DOM ID of wcvat_notpossible. Therefore, a CSS rule to always hide that element would look like:

#wcvat_notpossible { display: none; }

There are many ways to add a CSS rule to your site; see here for a guide.

When downloading a detailed CSV, how can I add an extra column?

A PHP developer can do this by using the hooks built-in to the plugin. We assume that the desired column has been stored in your database as an ‘order meta’ item. (If it is not, then you will need more complex processing). Below is a code example which takes an order meta item with key “PayPal Transaction Fee” and adds it to a new “PayPal Fee” column in the CSV. A developer can use and customise this example to achieve the desired result.

// Make sure that the order meta field 'PayPal Transaction Fee' is fetched from the database when selecting data for the report.
add_filter('wc_eu_vat_compliance_report_meta_fields', 'my_wc_eu_vat_compliance_report_meta_fields', 10, 2);
function my_wc_eu_vat_compliance_report_meta_fields($fields, $print_as_csv) {
return $print_as_csv ? $fields.", 'PayPal Transaction Fee'" : $fields;
}

// Give the order meta field 'PayPal Transaction Fee' the (internal) key 'pp_fee'
add_filter('wc_eu_vat_compliance_get_report_results_store_key', 'my_wc_eu_vat_compliance_get_report_results_store_key', 10, 2);
function my_wc_eu_vat_compliance_get_report_results_store_key($store, $res) {
return ('PayPal Transaction Fee' == $res->meta_key) ? 'pp_fee' : $store;
}

// Add a column header 'PayPal Fee' to the spreadsheet
add_filter('wc_eu_vat_compliance_csv_header_columns', 'my_wc_eu_vat_compliance_csv_header_columns');
function my_wc_eu_vat_compliance_csv_header_columns($columns) {
$columns[] = 'PayPal Fee';
return $columns;
}

// For the 'PayPal Fee' column, insert the value that we fetched earlier (pp_fee)
add_filter('wc_eu_vat_compliance_csv_data_entries', 'my_wc_eu_vat_compliance_csv_data_entries', 10, 3);
function my_wc_eu_vat_compliance_csv_data_entries($data, $order_id, $order) {
$data['PayPal Fee'] = isset($order['pp_fee']) ? $order['pp_fee'] : '';
return $data;
}

Is a customer’s VAT number stored in their user profile (usermeta) ?

Yes, it is stored in their profile, and can be edited on their profile page or in their WooCommerce account section. It is stored in the database (usermeta table) using the meta key vat_number.

I want to forbid VAT numbers from specified countries

If you want to not allow valid (according to your configured VAT number validation services) VAT number from certain countries, you can do this using the following code fragment (but adapt it according to the country code that you wish to use; the example below will forbid VAT numbers everywhere except Ireland, IE):

add_filter('wc_eu_vat_check_vat_number_country', 'my_wc_eu_vat_check_vat_number_country', 10, 2);

function my_wc_eu_vat_check_vat_number_country($allowed_country, $country) {
  // If it is not Ireland, then forbid it
  if ('IE' != $country) return false;
  // Otherwise, let the existing value pass through
  return $allowed_country;
}

Note that you will like want to also change the message shown. The default is “You cannot use a VAT number for which the country (country name) is outside of (VAT area name, e.g. the EU).”. The code fragment below changes the message to make it more appropriate for our example above:

add_filter('wc_eu_vat_disallowed_country_message', 'my_wc_eu_vat_disallowed_country_message', 10, 2);
function my_wc_eu_vat_disallowed_country_message($error, $country) {
  return sprintf(__('You cannot use a VAT number for this country (%s) - we only accept them from Ireland.', 'woocommerce-eu-vat-compliance'), $country);
}

Customers are not seeing the VAT field at the checkout – why might that be?

Whether customers are shown the VAT field depends upon a number of things, so you should check each of them:

  1. What taxation zone have you configured, and where is the customer’s taxable address?
    If, for example, you have configured the EU as your taxation zone, and the customer is from Denmark, then they won’t see the VAT field because they are not in the EU. So, you will want to check all relevant settings such as the taxation zones and the rules for deciding where your customer’s taxable address is (based on billing address, shipping address, and whether self-certification can be involved; and remember that for the “local pickup” delivery method, the taxable address is the pickup location, not the customer’s location).
  2. Are your base country settings involved?
    If the customer’s taxation country is the store’s “base country”, then settings related to this come into play. (In many tax regimes, customers in the base country should always be charged VAT, so won’t be offered the chance to enter their VAT number unless you specifically turn on the setting to require that their VAT number is collected anyway).
  3. Is the shopping basket/cart taxable?
    If there are no taxable items in the cart, then the customer will not be offered the opportunity to establish that they are tax-exempt. So, check what tax class you have put the product in, and what tax table entries there are for that tax class (in combination with the customer’s taxation country).
  4. Is your theme broken, or another plugin causing an incompatibility?
    For testing purposes, temporarily de-activate all other plugins (except WooCommerce), and switch to a default theme (e.g. TwentyTwenty). Then reload the checkout page. Is it now present? If so, then another component has introduced an error on the checkout page which prevents other components from working; you will need to use a process of elimination (selectively re-activating and de-activating) to identify which component is culpable.

If after this you still cannot find the cause, please raise a support ticket, and tell us what you learned at every stage above, and supply instructions on how to reproduce the problem (i.e. what product to put in the cart; what country to choose for billing/shipping, etc.)