I was trying to reproduce what are you describing:
Through the VAT settings on WooCommerce, I setup an extra rule for the
specific postal code with zero tax – unfortunately the result is a
line of zero tax, and a line of standard VAT, rather than the desired
line of zero tax only.I then tried to setup the standard tax rule in Germany to exclude the
single postal code, using 1-xxxxx and xxxxx-99999 where xxxxx is the
number below and above the postal code respectively. THis results in a
huge tax rule that WooCommerce clearly doesn’t like, as it switches
off any form of tax for any region at any time.
To test your setup and the behavior/problem you’re experiencing. But I can’t, it’s working for me. I’m having no problem with excluding one specific postal code.
Screenshot:
I entered 00001-66665;66667-99999
for the taxable regions/postcodes; and 66666
for the excluded one. Then I tested this on the checkout page, it does get updated correctly every time, which means, no or to be exact 0% tax with the postcode 66666 and 50% tax for all the other postcodes, for the country germany. Additional information, the development environment I tested it on has woocommerce v2.0.13 installed.
Was this:
I have a WooCommerce site and a specific distributor who will be
redirecting products from a taxable region (Germany) to a non-taxable
region (Russia). Thanks to various forms, this makes them exclusive of
VAT.
just informational? Or, does it describe a functionality you implemented?
Overall there isn’t enough information – and no code – available to further investigate what the problem might be. I’d have to guess. But it’s safe to say, your problem likely originates somewhere else.
Edit:
Like I said, the above is working for me. One thing I realized is that doing the exclusive rule the wp_woocommerce_tax_rate_locations
gets bloated up from 48KiB
to 13.5MiB
. I guess it’s just logical considering that 99999
singular entries are getting added to it, but really it’s just ridiculous. And I just added the above shown 3 rules, imagine you do that for several countries/states/postcodes, that is seriously flawed in my mind. Depending on your server (setup) this might be a problem, so maybe this is the reason why it’s working for me and not for you.
That considered I was thinking about a different approach. For sure you have read Setting up Taxes in WooCommerce, as you know from that the priority
is used to layer tax rules, so this won’t help. The whole priority concept of woocommerce is – in my mind – counterintuitive, it should be used for different excluding rules for same countries/states/postcodes – especially because this probably is the more common case. With a second option for layering taxes. But like documentation states:
Only 1 matching rate per priority will be used.
This is where the order gets relevant, like @Gerhard suggested. Another point where I’m thinking, seriously, the only way to control this is by dragging and dropping stuff. OK, enough bashing woocommerce for one post I guess, probably most people are happy with that. Coming back to your problem, you can do your setup with using a wildcard and the extra rule, if you have the right order.
Screenshot:
This is working for your case, at least it’s on my development environment. One big advantage is that there aren’t thousands of database entries involved. Of course that’s only the case because you only exclude exactly one specific postcode.