The EU VAT Assistant doesn’t remove VAT based on the payment method, it only deducts VAT when a valid VAT number is entered at checkout.
Please note that the VAT number is checked against he billing country. If a valid EU VAT number is entered, and the billing country is different from your shop’s base country, then the VAT is removed from the order. Example:
1. Your shop is based in France.
2. The customer selects Belgium as the billing country and France as the shipping country.
3. The customer enters a valid Belgian VAT number.
In this case, the EU VAT Assistant removes the VAT from the order. The fact that the order is shipped to France is irrelevant, because the aspects related to the shipping of physical goods are not taken into account by the plugin. This is not a bug, nor a problem, it’s by design.
The reason behind this design choice is that the EU VAT Assistant was designed specifically to comply with the VAT MOSS regulations. These regulations applied to digital products, which don’t require shipping. We haven’t yet implemented a check against the shipping country, nor features specifically related to the sale of physical goods. That will be part of the VAT Assistant plugin that will replace the existing one.
In the meantime, you have two options:
1. If you wish to replace the country to be used for the check with the shipping country, you can use a filter for hook wc_aelia_euva_set_customer_vat_exemption_country
. In your filter, you could check if the value of WC()->customer->get_shipping_country()
is set and, in that case, return that as the country for the VAT number validation.
2. If you wish to continue validating the VAT number against the billing country, but disable the VAT exemption when the shipping country matches your shop’s base country, you can use a filter for hook wc_aelia_eu_vat_assistant_customer_vat_exemption
. You can use the following template to get started:
add_filter(‘wc_aelia_eu_vat_assistant_customer_vat_exemption’, function($customer_vat_exemption, $vat_country, $vat_number) {
if($customer_vat_exemption) {
// If your custom criteria is met, e.g. the $vat_country matches
// your shop’s base country, set $customer_vat_exemption = false;
}
return $customer_vat_exemption;
}, 10, 3);`