Tested Updated Trending Bestseller Perfect rating Documented

EU VAT for WooCommerce

(5 customer reviews)

From: $39.99 / year

Manage EU VAT in WooCommerce. Beautifully.

$39.99 Single site1 year of updates and support30-day money-back guaranteeBuy
$59.99 Unlimited sites1 year of updates and support30-day money-back guaranteeBuy
$79.99Unlimited sitesLifetime updates and support30-day money-back guaranteeBuy
Clear

Description

With EU VAT for WooCommerce Pro plugin you can collect and validate EU VAT numbers on WooCommerce checkout. Optionally you can automatically disable VAT (i.e. exempt) for valid numbers.

Main Features

  • Multiple frontend options: field label, placeholder, description, position, country and user role visibility and more.
  • Multiple validation options: customizable frontend messages, option to validate but preserve VAT in selected countries, check matching customer’s country by IP, check matching company, allow VAT number input without country code etc.
  • Includes EU VAT report.
  • Plugin is WPML/Polylang compatible.
  • Includes EU country VAT rates tool – a tool to add all EU country VAT standard rates to WooCommerce.
  • VAT is automatically validated through http://ec.europa.eu service.

EU VAT for WooCommerce Plugin Options

Main plugin settings are located in “WooCommerce > Settings > EU VAT”.

Frontend Options

EU VAT for WooCommerce - Frontend Options

Field label
Label visible to the customer.
Default: EU VAT Number
Placeholder
Placeholder visible to the customer.
Default: EU VAT Number
Description
Description visible to the customer.
Default: None
Required
Sets if EU VAT field is required on checkout.
Default: no
Confirmation notice
Will add an additional confirmation notice on the checkout on empty VAT ID. For example you can enable this if EU VAT field is not required, but you still want to display a confirmation notice to the customer when no VAT ID was entered.
Default: no
Confirmation notice text
“Confirmation notice” must be enabled.
Default:
You didn't set your VAT ID. Are you sure you want to continue?
Priority (i.e. position)
Sets EU VAT field’s position in the billing section of the checkout page. Here are the default fields priorities: First name – 10, Last name – 20, Company – 30, Country – 40, Address 1 – 50, Address 2 – 60, City – 70, State – 80, Postcode – 90, Phone – 100, Email – 110.
Default: 200
Max length
Specifies the maximum number of characters allowed in the field. Ignored if set to zero.
Default: 0
Clear
CSS clear option.
Default: yes
CSS class
CSS class option. Possible values: Wide; First; Last.
Default: Wide
Label CSS class
Label CSS class option.
Default: None
Always show zero VAT
Will always show zero VAT amount in order review on checkout.
Default: no
Show field for selected countries only
Ignored if empty (i.e. field is shown for all countries). Enter country codes as comma separated list, e.g. to show field for EU VAT countries only enter:

AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HU,HR,IE,IT,LT,LU,LV,MT,NL,PL,PT,RO,SE,SI,SK,MC,IM

Default: None
Show field for selected user roles only
Ignored if empty (i.e. field is shown for all user roles). Compatible with all (i.e. custom) WordPress user roles.
Default: None

Display Options

EU VAT for WooCommerce - Display Options

Display
If empty – will display after order table. Possible values: After order table; In billing address.
Default: After order table

Validation Options

EU VAT for WooCommerce - Validation Options - v1.6.1

Validate
Enabled/disables EU VAT validation.
Default: yes
Message on not valid
Message will be displayed, when customer tries to checkout with invalid VAT number (“Validate” option must be enabled). Replaced value: %eu_vat_number%.
Default:

<strong>EU VAT Number</strong> is not valid.
First validation method
Change this if you are having issues when validating VAT. This only selects first method to try – if not succeeded, remaining methods will be used for validation. Possible values: SOAP; cURL; Simple.
Default: SOAP
Exempt VAT for valid numbers
Enables/disabled VAT exemption.
Default: yes
Preserve VAT in selected countries
This will validate the VAT, but won’t exempt VAT for selected countries. Country for “Base (i.e. store) country” option is set in “WooCommerce > Settings > General > Store Address”. Possible values: Base (i.e. store) country; Comma separated list; Disable.
Default: Disable
Preserve VAT in selected countries: Comma separated list
Enter country codes as comma separated list, e.g. IT,NL. Ignored unless “Comma separated list” option is selected above.
Default: None
Check country by IP
This will check if customer’s country (located by customer’s IP) matches the country in entered VAT number.
Default: no
Check company name
This will check if company name matches the VAT number.
Default: no
Check for matching billing country code
This will check if country code in VAT number matches billing country code.
Default: no
Allow VAT number input without country code
This will allow customers to enter VAT number without leading country code letters and still get VAT validated. In this case, country will be automatically retrieved from billing country input.
Default: no
Always exempt VAT for selected user roles
Ignored if empty.
Default: None
Always not exempt VAT for selected user roles
Ignored if empty.
Default: None
Skip VAT validation for selected countries
List all countries you want VAT validation to be skipped for (i.e. VAT always valid). Ignored if empty. Enter country codes as comma separated list, e.g. IT,NL.
Default: None

Progress Messages

EU VAT for WooCommerce - Progress Messages

Add progress messages
Enabled/disables progress messages on checkout.
Default: no
Validating
Message when validation is in progress.
Default: Validating VAT. Please wait...
Valid
Message on valid VAT.
Default: VAT is valid.
Not valid
Message on invalid VAT.
Default: VAT is not valid.
Validation failed
Message on VAT validation server timeout etc.
Default: Validation failed. Please try again.

Admin Options

EU VAT for WooCommerce - Admin Options

Meta box
Adds EU VAT number summary meta box to admin order edit page.
Default: no
Column
Adds EU VAT number column to admin orders list.
Default: no

Advanced Options

EU VAT for WooCommerce - Advanced Options

Debug
Log will be added to “WooCommerce > Status > Logs”.
Default: no
Session type
Possible values: Standard PHP session; WC session.
Default: Standard PHP session

WPML/Polylang Compatibility

To translate field label, placeholder, description, all messages options etc. you can use [alg_wc_eu_vat_translate] shortcode by entering it directly in settings, e.g.:

[alg_wc_eu_vat_translate lang="DE,NL" lang_text="EU-Steuernummer" not_lang_text="EU VAT Number"]

or in more complex form:

[alg_wc_eu_vat_translate lang="DE"]EU-Steuernummer[/alg_wc_eu_vat_translate][alg_wc_eu_vat_translate lang="NL"]BTW nummer van de EU[/alg_wc_eu_vat_translate][alg_wc_eu_vat_translate not_lang="DE,NL"]EU VAT Number[/alg_wc_eu_vat_translate]

EU VAT Report

EU VAT report can be accessed via “WooCommerce > Reports > Taxes > EU VAT”.

EU VAT for WooCommerce - EU VAT report

EU country VAT Rates Tool

EU country VAT rates tool can be accessed via “Tools > EU country VAT Rates”.

Country VAT Rate
Austria (AT) 20%
Belgium (BE) 21%
Bulgaria (BG) 20%
Cyprus (CY) 19%
Czech Republic (CZ) 21%
Germany (DE) 19%
Denmark (DK) 25%
Estonia (EE) 20%
Spain (ES) 21%
Finland (FI) 24%
France (FR) 20%
United Kingdom (UK) (GB) 20%
Greece (GR) 24%
Hungary (HU) 27%
Croatia (HR) 25%
Ireland (IE) 23%
Italy (IT) 22%
Lithuania (LT) 21%
Luxembourg (LU) 17%
Latvia (LV) 21%
Malta (MT) 18%
Netherlands (NL) 21%
Poland (PL) 23%
Portugal (PT) 23%
Romania (RO) 19%
Sweden (SE) 25%
Slovenia (SI) 22%
Slovakia (SK) 20%

5 reviews for EU VAT for WooCommerce

  1. blank

    Giovanni Crippa (verified owner)

    Great plugin and great Support!
    The developer help us to solve a problem with a customization in a couple of days!
    Perfect!

    Giovanni

  2. blank

    Robert Durmaz (verified owner)

    Really great plugin. Works exactly as intended. Had some small issues and Omar from the support was quick and helpful and resolved the problem for us. Thanks!

  3. blank

    roberto coletti

    Great plugin, really useful. Support is really fast.

  4. blank

    Barry Roosloot (verified owner)

    Great plugin, easy to use. But i run in a (for me) big problem. Omar once again, thank you for the quick respons and never stoped helping me till it was fixed. Thumb up for you and your plugin!

    Barry

  5. blank

    Vera

    It is great! And support is very helpful even with free version. 5 stars!

Add a review

Your email address will not be published. Required fields are marked *

93 thoughts on "EU VAT for WooCommerce"

  1. presale question. can I integrate the vat-check in the registration progress too?
    or only at checkout? I need the user to be restricted from register if their vat-number check fails. this is kind of urgent. thank you

    1. Sorry Michael, but this is not doable with the default configuration of the plugin, can be done through customization though.

      If you’re interested, please reach us at [email protected]

      Omar

  2. When this plugin is activated it causes an error in the sitehealth check:

    “Your site could not complete a loopback request
    Performance
    Loopback requests are used to run scheduled events, and are also used by the built-in editors for themes and plugins to verify code stability.

    The loopback request to your site failed, this means features relying on them are not currently working as expected.
    Error: cURL error 28: Operation timed out after 10000 milliseconds with 0 bytes received (http_request_failed)”

    1. Hi Roberto,

      Thanks for flagging this, please update to the latest version where we sorted it.

      Let me know if you still face any issue.

      Omar

  3. HI

    I have a pdf invoice plugin, and it doesnt show EU-VAT field value.
    Please help me how to “call” that value to be show in pdf invoice. For instance, i am showing other fields this way:
    {{billing_company}}
    {{billing_first_name}} {{billing_last_name}}
    {{billing_address_1}}{{billing_postcode}} {{billing_city}}…

    Another question, do you know if eu vat field label is translatable as i cant find that string in whm

    Thank you

    1. I forgot to say, i am translating with WPML plugin

    2. Hi Dragoslav,

      Please try calling the field using {{billing_eu_vat_number}}, if it didn’t work, I have to check the other plugin to confirm.

      For the second question, this is not currently available but shouldn’t be an issue, will include it in a near update.

      Omar

    3. Hi Dragoslav,

      2.2 is now released and includes some changes to make the plugin more compatible with WPML, please check this section for how to translate the fields:
      https://wpfactory.com/item/eu-vat-for-woocommerce/#alg_wc_eu_vat_translate

      Omar

  4. Hi! I was about buying your pro version, but first I checked the free one and its not working for me. The VAT is never validated even being a valid VAT. The error log is the following:
    2020-09-20T14:04:21+00:00 INFO Error: VAT is not valid (checkout) (Country: [BE]; VAT ID: [BE0999999999]; Company: []; Method: [])
    2020-09-20T14:04:45+00:00 INFO Error: SoapClient class does not exist (Country: []; VAT ID: [ BE0999999999]; Company: []; Method: [soap])
    2020-09-20T14:04:45+00:00 INFO Error: No response (Country: []; VAT ID: [ BE0999999999]; Company: []; Method: [curl])
    2020-09-20T14:04:45+00:00 INFO Error: No response (Country: []; VAT ID: [ BE0999999999]; Company: []; Method: [file_get_contents])
    2020-09-20T14:04:46+00:00 INFO Error: SoapClient class does not exist (Country: [BE]; VAT ID: [0999999999]; Company: []; Method: [soap])
    2020-09-20T14:04:47+00:00 INFO Error: VAT ID not valid (Country: [BE]; VAT ID: [0999999999]; Company: []; Method: [curl])
    2020-09-20T14:04:47+00:00 INFO Error: VAT is not valid (checkout) (Country: [BE]; VAT ID: [BE0999999999]; Company: []; Method: [])

    1. Hi Nil,

      Sometimes it happens that the server (EU VAT VIES) isn’t responding, can you please check your VAT on this page and see if it gets validated:
      https://ec.europa.eu/taxation_customs/vies/

      If it does, would you mind sharing the VAT number you’re testing with a link to test it?

      Omar

  5. Quick question, i’m preparing a new webshop for a client that’s based in Belgium but sells troughout europe to businesses and normal consumers.

    – consumers that live in belgium need to pay VAT
    – businesses that live in belgium and enter their VAT (that is checked and approved) need to pay VAT
    – consumes that live in other EU countries need to pay VAT
    – businesses that live in other EU countries and that have their VAT number validated (checked and approved) do NOT need to pay VAT

    Can your tool do this ? I’d like to automate the VAT process so that businesses in the EU that are checked immediatly not pay VAT, which is the law.

    I hope to hear from you soon, greetings, Nicolas

    1. Hi Nicolas,

      Yes, this can be done by preserving the VAT in Belgium (avialable option in Pro verison) so any purchase from Belgium will pay VAT.

      Those from other EU countries will be asked to enter VAT (optionally), if verified they will be exempted from VAT.

      Let me know if you need any further help.

      Omar

  6. Goodmorning,
    I have installed your plugin EU VAT for WooCommerce and I find it very useful and very well writted. It works perfectly.

    I have a problem to solve:
    In our e-commerce, http://www.maribertstore.com , we sell to individual and company.
    The first field in the checkout page allow customer to chose If they are individual or company. EU Individual people pay VAT while EU Company are exempted.
    I would like that the EU VAT field “_billing_eu_vat_number” is hide when a customer select Individual in the first selection field with id “individual_company_selection”

    Is possible to do that??
    I need to know because I have to decide if buy the pro version to hide the field for extra ue country.

    Could you help me?

    Thank you!
    Dott. Giovanni Crippa

    1. Hi Giovanni,

      Yes that can be done, but it’s not a built-in feature in the plugin and needs to be customized directly on your store.

      Feel free to contact me at [email protected] to discuss further.

      Omar

  7. Hello.
    Can you plugin (pro version or free) disable or change vat if the number is entered and valid?

    For example:
    If the customer from Austria has a vat number, then the product must have a different value.

    https://i.imgur.com/fUPjf4A.jpg

    1. Hello Vladyslav,

      No, the plugin doesn’t control/change product pricing regardless of VAT status, it mainly exempt / apply tax based on VAT number.

      Omar

    2. Hello Vladyslav again,

      I just noticed (or been notified actually) that what you meant is “probably” removing the tax from the total price, and if I’m not mistaken, this means that you’ve entered prices including taxes on the store, and on checkout you will remove VAT (which changes the product price listed there).

      If that’s the case, yes this can be done by the plugin, it’s actually the main functionality of it, I just thought you want to change prices depending of VAT status.

      Let me know if you need any further help.

      Omar

  8. Hi I have this plugin installed on one of our development sites and I have assigned a key to that site. However, when I try to restrict the field on the checkout by country it doesn’t appear to do anything. I’m viewing the checkout from the UK (GB Country Code) and I have it set to only show in Ireland (IE Country Code) but it still shows for me.

    Any help appreciated!

    1. Hi Shelley,

      Can you please send me the screenshots for the settings you’ve applied to [email protected]? Along with a link to the store if accessible externally so I can see the issue.

      Omar

  9. Do I need Pro version to preserve Vat in my base country?

    1. Hi Justyna,

      Yes, that’s a pro feature.

      Omar

  10. on http://www.thebullet.be I no longer receive a correct validation when entering a 100% sure correct VAT number (BE0476996114 ) . I use the Pro version 1.3.0 and this used to work before. Thanks for helping me out

    1. Hi,

      2 things here please.

      1) The current version is 2.0 and it’s worth the update since you have 1.3
      2) At the time of writing this, the BE VAT server looks not working (which happens a lot actually), and I can’t verify your number on the official VIES VAT website here:
      https://ec.europa.eu/taxation_customs/vies/vatResponse.html

      Let me know please if you were able to validate on the official website and not yet doing so on your store.

      Omar

  11. Hi,

    I Installed and configured the plugin. When i enter a VAT nr on the checkout page it gives the error that the VAT nr is incorrect. I am 100% sure its correct. We tryed with PHP 7.4 and 7.3. This is the log entry:

    2020-06-17T11:51:44+00:00 INFO Error: Exception: SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl’ : failed to load external entity “http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl”
    (Country: [BE]; VAT ID: [0599781088]; Company: []; Method: [soap])
    2020-06-17T11:51:44+00:00 INFO Error: VAT ID not valid (Country: [BE]; VAT ID: [0599781088]; Company: []; Method: [curl])

    Can u help us?

    1. Hello Alexander,

      We’ve just release a new version (an hour ago) where we addressed this issue, please update to 1.9 and let me know if you still face the issue.

      Omar

  12. Can this plugin automatically remove the VAT from an order during checkout after the VAT number comes back as valid?

    1. Hi Nicole,

      Yes sure, that’s the main use for the plugin, it makes VAT as zero if returned valid, with some settings to preserve VAT in defined countries.

      Please let me know if you have any other questions.

      Omar

  13. Hi, again, where can i send the information to? Login etc. I don’t post this detail information public ;o)

    1. Hi Barry,

      Yes sure, please do so at [email protected]

      Omar

  14. Hi there,

    When i try the plugin, the VAT for NL is 100% OK. But i need it for BE and is is not working. Company name and VAT number never gets the OK. And when i turn of varification the TAX is stil 21% and i want zero tax. I cant get it to wrok. Hope you can help me.

    Greetings
    Barry

  15. Hello,

    we get number with every foreign vessel: VAT is not valid.

    but all numbers are correct, it concerns our customers. How is this possible?

    http://www.rrwheels.nl

    1. we find out, we cannot copy. if we copy the vatnumber it give a error

    2. Hi Roy,

      Actually I’ve never written a VAT number in the field, I always copy & paste it and it works, can you please give me more details or a link where I can see the isse?

      Omar

    3. same here

    4. Hi Barry,

      Can you please send me a link for your store? On Roy’s store I was able to paste VAT directly (still waiting his confirmation though).

      Omar

  16. Thank you for your reaction. I know that your competitor gives the ability to choose which VAT rates will be applied. I also have managed that the invoice and packing slip plugin from wpovernight works with your plugin. Please do me and your customers a favor by adding some checkboxes to select which VAT they want to delete when entering a valid EU number. Thank you!

    1. Thanks Glenn for the suggestion, I will work on this very soon.

      I’ve sent you a separate email to clarify some thoughts on this.

      Omar

  17. Hi,

    I have managed to create the field. But I have another problem. How do I manage the following?:

    – I have bussiness customer from the EU that order services (this should be mentioned as “BTW Verlegd”
    – I have bussiness customers from the EU that order goods (this should be mentioned as “BTW 0%”

    What if the customer bought both? The thing that I thought is making another VAT group for the services. However I am not able to exclude certain categories or VAT groups or am I wrong about that? Do you have antoher solution to fix this?

    Best regards,

    Glenn

    1. Hi Glenn,

      Actually I didn’t work before on a store that sells goods & services at the same store (rather than someone buying both types in one purchase).

      I think the issue here will be how to manage VAT on the store before exempting it on checkout, but with the current settings, unfortunately this can’t be managed, it works with validate then exempt or preserve modes (reads VAT rates & settings from WC directly).

      Omar

  18. Hi,

    Is it possible to add a customfield in the registration form with EU Vat number? For example “billing_first_name” is the custom field for woocommerce first name.

    Best regards,

    Glenn

    1. Hi Glenn,

      As for collecting it, you can do so by adding any plugin that allows you to customize the signup form, but for validating it on signup, I’m afraid that it won’t be possible.

      Two notes here:
      1) The more fields you add on your signup page, the higher exit rate you will get, so from a UX perspective, keep it minimal.
      2) If you decide to collect it, you can configure the field on checkout to read from the created field, it should be saved on billing_eu_vat_number

      Omar

  19. Hi! I have a version of my checkout that removes a lot of fields if payment isn’t required. Trying to unhook the VAT field in this instance, and using

    if(function_exists(‘alg_wc_eu_vat’)) {
    remove_filter(‘woocommerce_checkout_fields’,array(alg_wc_eu_vat(),’add_eu_vat_checkout_field_to_frontend’),PHP_INT_MAX);
    }

    But can’t seem to make it work. Any suggestions on how I can achieve this? Thanks!

    1. Hello Thomas,
      If you’re trying to remove the field totally, I suggest you try unset instead of remove_filter, check this WC example for reference.
      Let me know how it goes.
      Omar

    2. If that didn’t work, please try your code, with this edit:

      remove_filter( 'woocommerce_checkout_fields', array( alg_wc_eu_vat()->core, 'add_eu_vat_checkout_field_to_frontend' ), PHP_INT_MAX );

      Omar

  20. Hi, got the same problem as Mateo:
    Hi,

    I just installed the pro version and this is happening:

    “1. VAT number is always invalid. I’ve tried with numbers I know are right, but still not working. I tried several formats (CCXXXX, CC-XXXXX, CC XXXXX, XXXXX…). Could you help me find what I am doing worng?

    2. VAT is never deducted from checkout. I guess this is a consecuence of the previous issue, but once it is fixed I’ll know.

    Thanks in advance,”

    1. Sorry for the request earlier, problem solved, our soap, curl was partially disabled
      Working perfect now!

    2. Hi Andreas,

      Glad you’ve figured it out and thanks for the update.

      P.S. If anyone else is having similar issues – there is the “Debug” option in “WooCommerce > Settings > EU VAT > Admin & Advanced” section. If it’s enabled, you will be able to see some additional error info in “WooCommerce > Status > Logs”.

  21. Hi,

    I just installed the pro version and this is happening:

    1. VAT number is always invalid. I’ve tried with numbers I know are right, but still not working. I tried several formats (CCXXXX, CC-XXXXX, CC XXXXX, XXXXX…). Could you help me find what I am doing worng?

    2. VAT is never deducted from checkout. I guess this is a consecuence of the previous issue, but once it is fixed I’ll know.

    Thanks in advance,
    Mateo

    1. VIES is giving me a valid result, though not showing company information.

    2. Hi, it accepts VAT numbers now, but does not remove taxes. Could you advise?

    3. Hi Mateo,

      Could you please recheck if:

      1. You’ve enabled “Exempt VAT for valid numbers” checkbox in “WooCommerce > Settings > EU VAT > Validation & Progress”.

      2. You are not blocking VAT exemption with “Preserve VAT in selected countries” option (again in “WooCommerce > Settings > EU VAT > Validation & Progress”).

    4. Hi Tom,
      Thank you for the answer.

      Both points rechecked, still not working.
      Point 2 I have at Base Country, but it doesn’t work in any option.

      I already uninstalled all the plugins to see if there was conflict.

      BR,
      Mateo

    5. Solved, Dynamic Pricing was f***ng things up.

      Sorry to bother.

      BR,
      Mateo

    6. Hi Mateo,

      Thanks for the update. Is “Dynamic Pricing” plugin essential for you? Or you can remove it or replace it with something else?

  22. Hello
    can I add somehow to checkout price field, that price, subtotal and total is without VAT?
    Thanks.

    1. Hi Mario,

      Not sure if I understood you correctly but there is “Always show zero VAT” option in plugin’s settings (in “General > Frontend Options”). Please let me know if that’s not what you need.

  23. Hi, i’ve already sent an email regarding this but not received a reply .

    I’ve been working with my hosting provider to resolve an issue identified in the WordPress Site Health Check. They have spent a few days trying to revolve this and narrowed it down to your plugin which is blocking the WP Rest API calls which affects the checking of WordPress Core, Themes, & Plugin updates.

    I’m using pro version 1.5, hoping you can identify and resolve this asap so I don’t have to look elsewhere.

    Performance
    The REST API is one way WordPress, and other applications, communicate with the server. One example is the block editor screen, which relies on this to display, and save, your posts and pages.
    The REST API request failed due to an error.
    ERROR: [] cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received

    1. Hi Tom, It could look like the same problem we have in Denmark, where the whole system is blocked after a period of 3-4 hours. Please write when you have an update on this.

    2. Hi,

      Could you please try setting “Session type” option in “WooCommerce > Settings > EU VAT > Admin & Advanced” to “WC session”.

  24. Hello!
    We install free version of you plugin, and get a problem with VAT validation… Can you tell us, In what format we need to enter VAT for correct validation, if we have VAT nubmer BE56 8508 1364 5088 for Belgium

  25. Hi Tom,
    We got a new problem. We got the plugin to work as it should but after a couple of hours the check out was locked so that it was impossible to check out. The only thing we had changed was the plugin so we deactivated it and the check out was available again. We tried again next day and the same happend after 8 hours. Do you have any idea og what is going wrong?

    1. Any news?

    2. Hi Henrik,

      Sorry for the late reply.

      As last time – would it be possible for me to log in to your site ([email protected])? If sharing an account is not an option – maybe you could share the link to your site’s frontend then.

    3. I have send you a mail,

  26. Even though I fill in a VAT nr that is valid then on place order it tells me that VAT is not valid how come?

    1. Hi Henrik,

      Would it be possible for me to login to your site? If yes – my email is [email protected]

    2. It turned out that it was an internal setup error. Everything is working now.

  27. Hi, I’ve installed your plugin on my website but unfortunately I have an issue:

    – If I am logged in, everything works fine and the VAT amount is removed from the total if the VAT number is correct

    – as guest user instead, also with a correct VAT number, the amount still remain there.

    How should I solve it, please?

  28. Hey,

    do you think you could add an additional && ! headers_sent() check in /functions/alg-wc-eu-vat-functions-general.php l. 65 to avoid causing headers already sent warnings?

    1. Hi Johannes,

      Sure, I could add it, however, are you sure it will still work? I mean, it looks like then no session will be started. By the way – have you tried selecting “WC session” for “Session type” in “WooCommerce > Settings > EU VAT > Advanced Options” – this should skip line 65 at all.

  29. Hi,

    I just found out about an issue involving this plugin in combination of the plugin Mollie Payments for WooCommerce.

    When the VAT number is correct, the total price of my WooCommerce cart updates the price to the correct total; total minus tax. But when I go to check-out using the Mollie checkout (creditcard/paypal) the price I need to pay shows the amount including the VAT. So not the correct total.

    I have also asked support at Mollie for this issue. I don’t know who can get this sorted. Looking forward to your reply.

    1. Hi,

      Sorry for a late reply. Is it possible for me to log in to your site’s admin? It would be much easier for me to solve this then. FTP access would also help. If that’s possible – my email is [email protected].

  30. Hello,

    Pre purchase question!

    If customers from a specific country enter their VAT number can the vat be reduced to zero rate?

    1. Hi,

      Yes. You need to enable “Exempt VAT for valid numbers” checkbox in plugin’s settings. And if you want to limit it to specific countries only, you can fill in “Show field for selected countries only” option.

      Hope that helps. Please let me know if you have any more questions.

  31. Tom,

    I have been trying to purchase your plugin with no luck. I keep getting error message Payment declined: 3000: Do not Honour.
    Order #14524, I have tried different credit cards with same outcome. Please let me know if there are any other options for payment.
    Hope to hear back from you soon.

  32. I’m using this plugin and its working great! except for one thing:

    I have ‘Preserve VAT in selected countries’ enabled on ‘Comma separated list’ and have selected NL (Netherlands) in this list.

    In the checkout when someone fills in his Belgium (BE) VAT number and it gets validated the order wil get charged 0% tax which is good, but when the user confirms the order, it suddenly brings back the tax (21%) and the user has to pay the full amount with tax included.

    Am I doing something wrong?

    1. Hi,

      Thanks for reporting – as “Comma separated list” option was only added in latest plugin version 1.4.0, it may be that I didn’t test it properly. Will check that as soon as possible.

    2. Hi again,

      I’ve just tried to reproduce the error on my test server, but unfortunately didn’t succeed – 0% VAT remains after I’m confirming the order. Maybe I could log in to your site’s admin to check what’s going on? If that is possible – my private email is [email protected]. If sharing an account is not an option – could you please for a start try setting “Preserve VAT in selected countries” option to “Disabled” to be sure that this is connected.

    3. Thanks for logins. After logging to your server I was able to replicate the error. The problem occurs only when VAT ID is entered without country code (i.e. “Allow VAT number input without country code” plugin option must be enabled). Already fixing this…

    4. Fixed in plugin v1.4.1.

  33. Hi! i have installed the plugin but it seems that doesn´t work on my site.

    I have to delete or edit the tax rates of the woocommerce section? I just have edited this three rows in order to not applicate taxes to GB and US but applicate it to the rest of the world :

    * | 21%
    GB | 0%
    US | 0%

    I am trying to prove valid VAT numbers from this link but I do not know if they are correct: https://www.braemoor.co.uk/software/vattestx.php

    Could you help me please?

    P.d: Where should i add the key??

    Thanks so much!

    1. Hi,

      Maybe you can create/share an admin account to your server, so I could log in and check what’s going on. If that’s possible – my private email is [email protected].

      As for the license key – you need to install free “WPFactory Helper” plugin (https://wordpress.org/plugins/wpcodefactory-helper/) to enter your site key.

    2. Of course Tom, thanks so much. I´m going to send you right now 🙂

  34. Hello,
    I don’t see the option “Preserve VAT in base country” working as expected. At the checkout with a EU VAT number from the store’s base country VAT still gets removed, which it shouldn’t.

    You can test this on my online shop, add a product here and progress to the checkout:
    https://underscoretype.com/product-category/typefaces/silta/

    · The shop location is Finland
    · The “Preserve VAT in base country” is checked
    · Try with a Finnish address and VAT, for example my company’s 28338636

    I further have an unrelated problem with the plugin coupled with WP Super Cache. The VAT plugin outputs headers which break the caching routine. Here an example of the error log:

     [18-Jan-2019 09:10:32 UTC] PHP Warning: Error while sending QUERY packet. PID=28164 in …/wp-includes/wp-db.php on line 1924 [18-Jan-2019 09:10:32 UTC] PHP Warning: Error while sending QUERY packet. PID=849 in …/wp-includes/wp-db.php on line 1924 [18-Jan-2019 09:10:32 UTC] PHP Warning: Error while sending QUERY packet. PID=31530 in …/wp-includes/wp-db.php on line 1924 [18-Jan-2019 09:11:32 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 1197 [18-Jan-2019 09:11:32 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 1197 [18-Jan-2019 09:12:11 UTC] PHP Warning: session_start(): Cannot send session cookie - headers already sent by (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/eu-vat-for-woocommerce-pro/includes/functions/alg-wc-eu-vat-functions-general.php on line 57 [18-Jan-2019 09:12:11 UTC] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/eu-vat-for-woocommerce-pro/includes/functions/alg-wc-eu-vat-functions-general.php on line 57 [18-Jan-2019 09:12:11 UTC] PHP Warning: session_start(): Cannot send session cookie - headers already sent by (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/eu-vat-for-woocommerce-pro/includes/functions/alg-wc-eu-vat-functions-general.php on line 57 [18-Jan-2019 09:12:11 UTC] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/eu-vat-for-woocommerce-pro/includes/functions/alg-wc-eu-vat-functions-general.php on line 57 [18-Jan-2019 09:23:43 UTC] PHP Warning: Error while sending QUERY packet. PID=11922 in …/wp-includes/wp-db.php on line 1924 [18-Jan-2019 09:24:02 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 1197 [18-Jan-2019 09:24:24 UTC] PHP Warning: session_start(): Cannot send session cookie - headers already sent by (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/eu-vat-for-woocommerce-pro/includes/functions/alg-wc-eu-vat-functions-general.php on line 57 [18-Jan-2019 09:24:24 UTC] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at …/wp-includes/wp-db.php:1924) in …/wp-content/plugins/eu-vat-for-woocommerce-pro/includes/functions/alg-wc-eu-vat-functions-general.php on line 57 
    1. Hi,

      Maybe it’s possible to login to your site’s admin to check what’s going on? Also FTP access would help a lot. If it’s possible – my private email is [email protected].

      P.S. I did try going through your site’s frontend, however I keep getting “VAT is not valid” message (I’ve tried VAT ID you’ve provided, and I’ve added FI prefix). If you have checked “Check country by IP” checkbox in plugin settings, then my IP being not from Finland would result in invalid VAT..

    2. Hm, odd. I sent a reply to this but it does not appear here.

      FTP or other access to my production site is not an option.

      I’ve disabled the IP based country check, so you should be able to run the same test now without that impeding your result.

      Have you checked this in a online test environment with a locale and matching VAT of your choosing?

    3. Hi Johannes,

      I’ve just tried it on your site (added “Silta Thin” product to the cart) and it seems to be working fine: after entering Finnish VAT you’ve provided, I’ve got “VAT is valid, no VAT will be charged to EU businesses outside of Finland.” message and VAT is still there (Subtotal: 29 eur; VAT: 7 eur; Total: 36 eur). What am I missing?

      P.S. Regarding your previous message – it went to spam for some reason (I suppose because site’s spam filter decided that there are too many links in the message, sorry for that).

    4. Hey, thanks for getting back to me with this.

      Can you think of a reason why I am getting different results? Entering the same details I am presented with VAT 0€ when I try the same (just now). IP check is still off, and regardless, I confirmed with an online tester that I am correctly identified as browsing from Finland. Why would I get a different result than you testing with the same country and VAT ID?

    5. Hi Johannes,

      Regarding the second issue with WP Super Cache – hopefully I’ve managed to fix it. I’ve just released new plugin version 1.2.1. After update, please go to plugin settings (in “WooCommerce > Settings > EU VAT”) and there (at the bottom of the page in “Advanced Options” subsection) please select “WC session” option for Session type. Please let me know if it’s still not working as expected.

  35. Hello, i have this premium plugin. Skip VAT validation for selected countries dont work for me. My country is Spain. I put ES in the list but VAT is validating yet if a client comes from spain

  36. I keep getting messages ”EU VAT Number is not valid.” when checking out, when this field isn’t filled.
    Even when ”Sets if EU VAT field is required on checkout.” is off.

    Private sales aren’t possible this way, how do i fix it?

    1. Hi,

      I’ve just re-tested on my server, but unfortunately couldn’t reproduce the issue – when “Required” checkbox is not set in plugin settings, I can checkout without entering VAT. Maybe I can login to you server to check what’s going on? My private email is [email protected].

      Best regards,
      Tom

    2. In case if anyone else has similar issues – as we figured out in private emails – removing EU VAT number field’s placeholder in plugin settings solves the issue.

      Best regards,
      Tom

Leave a Reply

Your email address will not be published. Required fields are marked *

Changelog

2.2.1 - 14/10/2020

  • Fixed a warning message that was appearing the Site Health Check

2.2 - 02/10/2020

  • Added more strings to be translatable using multi-language sites
  • Tested compatibility with WC 4.5

2.1 - 20/08/2020

  • Fixed a bug that wasn't exempting VAT on manual orders (WP backend)

2.0.1 - 15/08/2020

  • Tested compatibility with WP 5.5
  • Tested compatibility with WC 4.3

2.0 - 25/06/2020

  • Fixed a bug that prevented showing the correct message (valid successful) for compatibility with some themes JS
  • Enhanced the SOAP method via using better communication method with EU VAT servers

1.9 - 17/06/2020

  • Stopped calling the main JS file on all pages and keep it only on checkout for better performance
  • Removed the string from a deprecated argument to get list of countries
  • Fixed a minor issue that was causing error (failed to load external entity ) in communicating with VIES servers in some cases

1.8.1 - 25/03/2020

  • Checked all plugin features compatibility with WC 4

1.8.0 - 23/12/2019

  • Dev - Plugin author updated.

1.7.2 - 12/12/2019

  • Dev - General - Frontend Options - "Max length" option added.
  • Dev - Validation - "Skip VAT validation for selected countries" option moved from to "Advanced" section.
  • Dev - Code refactoring.

1.7.1 - 05/12/2019

  • Fix - Validation - Check for matching billing country code - Fixed for Greece (EL is replaced with GR when comparing country codes).
  • Dev - Admin & Advanced - "Force VAT recheck on checkout" option added.
  • Dev - Debug - "Error: VAT is not valid" message added to the log.
  • Dev - Code refactoring.
  • Tested up to: 5.3.

1.7.0 - 08/11/2019

  • Dev - Validation - "Always exempt VAT for selected user roles" and "Always not exempt VAT for selected user roles" options added.
  • Dev - Admin & Advanced - Debug - "Country code does not match" message added to the log.
  • Dev - Admin & Advanced - Session type - "WC session" option marked as "recommended".
  • Dev - Code refactoring.
  • WC tested up to: 3.8.

1.6.1 - 16/10/2019

  • Dev - Validation - Check company name - Now converting all values to uppercase before comparing.
  • Dev - JavaScript - Better event for company validation.

1.6.0 - 15/10/2019

  • Dev - General - Frontend Options - "Show field for selected user roles only" option added.
  • Dev - Validation - "Check company name" option added.
  • Dev - Admin & Advanced - Advanced Options - "Debug" option added.
  • Dev - Code refactoring.

1.5.0 - 13/08/2019

  • Dev - Admin - Order List - "EU VAT" column added.
  • Dev - Admin - Reports - Taxes - "EU VAT" report added.
  • Dev - Admin - EU country VAT Rates Tool - Duplicates are no longer added for the country.
  • Dev - Admin settings split into sections.
  • Dev - Allow VAT number input without country code - Additional country fallback added.
  • Dev - Functions - General - alg_wc_eu_vat_session_start() - Additional headers_sent() check added.
  • WC tested up to: 3.7.
  • Tested up to: 5.2.

1.4.1 - 04/05/2019

  • Fix - Preserve VAT in selected countries - Bug (when "Allow VAT number input without country code" is enabled) fixed.
  • Fix - Show field for selected countries only - Bug (when "Required" is enabled) fixed.
  • Dev - Frontend Options - "Confirmation notice" options added.
  • Dev - Code refactoring.
  • Dev - "WC tested up to" updated.

1.4.0 - 06/03/2019

  • Fix - "Preserve VAT in selected countries" fixed when "Allow VAT number input without country code" is enabled.
  • Dev - Frontend Options - "Always show zero VAT" option added.
  • Dev - [alg_wc_eu_vat_translate] shortcode added.
  • Dev - Shortcodes are now also processed in field label, placeholder, description and validation message options.
  • Dev - Validation - Preserve VAT in selected countries - "Comma separated list" option added.
  • Dev - Frontend Options - "Show field for selected countries only" option added.

1.3.0 - 31/01/2019

  • Fix - Default field value on the checkout fixed.
  • Dev - Display Options - Display - Multiple positions are now allowed (i.e. multiselect).
  • Dev - Display Options - Display - In billing address - Field is now editable ("My Account > Addresses").
  • Dev - Frontend Options - "Label CSS class" option added.
  • Dev - Code refactoring.

1.2.1 - 30/01/2019

  • Dev - Advanced Options - "Session type" option added.
  • Dev - Admin settings - "Your settings have been reset" notice added.

1.2.0 - 12/11/2018

  • Fix - AJAX - Possible "undefined index" PHP notice fixed.
  • Dev - General - "Priority (i.e. position)" option added.
  • Dev - General - "Raw" input is now allowed in textarea admin settings.
  • Dev - Code refactoring.
  • Dev - Plugin URI updated.

1.1.0 - 07/06/2018

  • Dev - General - "Check for matching billing country code" option added.
  • Dev - General - "Allow VAT number input without country code" option added.

1.0.1 - 05/06/2018

  • Dev - %eu_vat_number% replaced value added to "Message on not valid" option. "Message on not valid" now doesn't check for required (i.e. empty) field.

1.0.0 - 24/05/2018

  • Initial Release.

Free vs Pro

This plugin is a premium version of free "EU VAT for WooCommerce" plugin.

Free VersionPro Version
Frontend: Field labelyesyes
Frontend: Placeholderyesyes
Frontend: Descriptionyesyes
Frontend: Required/Optionalyesyes
Frontend: Confirmation noticeyesyes
Frontend: Priority (i.e. position)yesyes
Frontend: Field and label CSS classyesyes
Frontend: Always show zero VATyesyes
Frontend: Show field for selected countries onlynoyes
Frontend: Show field for selected user roles onlynoyes
Display Optionsyesyes
Validation: Validate VAT IDyesyes
Validation: Customizable "EU VAT Number is not valid" frontend messageyesyes
Validation: Validation methodyesyes
Validation: Exempt VAT for valid numbersyesyes
Validation: Preserve VAT in selected countriesnoyes
Validation: Check country by IPnoyes
Validation: Check company namenoyes
Validation: Check for matching billing country codeyesyes
Validation: Allow VAT number input without country codeyesyes
Validation: Always exempt / not exempt VAT for selected user rolesyesyes
Validation: Skip VAT validation for selected countriesyesyes
Customizable optional validation progress messagesyesyes
Admin Options: Order summary meta boxyesyes
Admin Options: Order list columnyesyes
Advanced Options (debug, session type etc.)yesyes

Developers

Field ID used for storing EU VAT is _billing_eu_vat_number. To retrieve saved EU VAT number from WooCommerce order in PHP, use this snippet:

if ( '' != ( $billing_eu_vat_number = get_post_meta( $order->get_id(), '_billing_eu_vat_number', true ) ) ) { echo esc_html( $billing_eu_vat_number ); }

To retrieve saved EU VAT number from WooCommerce customer meta in PHP, use the snippet below. Note that there is no underscore in field ID (differently from order meta):

if ( '' != ( $billing_eu_vat_number = get_user_meta( get_current_user_id(), 'billing_eu_vat_number', true ) ) ) { echo esc_html( $billing_eu_vat_number ); }

Installation and Updates

  • Buy the plugin 🙂
  • Download plugin's zip to your computer (you will receive an email with download link, or you can always download the plugin from your account).
  • Go to "Admin Dashboard > Plugins > Add New > Upload Plugin" and browse for downloaded zip file.
  • If plugin is successfully installed - you should see it added to the Plugins list.
  • To keep WPFactory items up to date, please install WPFactory Helper plugin and enter your site key.

Refunds

We want to ensure that you are 100% happy with your purchase, so if you feel the product(s) you purchased are not the best fit for your requirements and you attempted to resolve issues with product's author, we are offering 30 day money back guarantee refund policy.