Update 3.0.0 – Tax Exemption for WooCommerce: Registration Number, Expiry Reminders, and more!

Version 3.0.0 of the Tax Exemption for WooCommerce plugin is now available.

This is one of our biggest updates so far.

Customers can now supply a registration number with their exemption, and the PRO version can check that number against the official register it belongs to.

There are also automatic expiry reminder emails, tax exemption on express checkout, and a long list of fixes.

Key New Features

Registration Number Field

A new option has been added to show a “Registration Number” field on the tax exemption form.

Customers can use it to supply a VAT number, charity number, ABN, GSTIN, EIN, resale certificate number and more. You choose which number types your store accepts on the new “Registration Number” settings tab.

Tick a single type and the type dropdown is hidden entirely, so customers just see one field. This keeps the form simple if you only ever accept one kind of number.

The registration number then appears everywhere the other exemption details already do. That includes the customer’s account, the Exempt Customers and Exempt Orders pages, their CSV exports, the admin order screen, and the admin notification emails.

This field is available in the free version.

Registration Number Verification (PRO)

The PRO version can now verify the number a customer enters.

Every number is first checked against its own format and checksum rules. UK VAT numbers, Australian ABNs, India GSTIN, New Zealand IRD and Canadian Business Numbers all have an official check digit, and this catches effectively every typo and invented number. It needs no setup or account.

On top of that, the number types with an official register can be looked up live:

  • EU VAT numbers via VIES
  • UK VAT numbers via HMRC
  • Australian ABNs via the Australian Business Register
  • England & Wales charity numbers via the Charity Commission

Each number type is its own row on the settings tab, and the types with a register expand to hold that register’s setup. Everything for a given type lives in one place.

You choose what happens when a number is rejected. It can either be flagged for you to review, or block the customer from claiming exemption.

A register being temporarily unreachable is never treated as an invalid number. VIES member state services go offline regularly, and a checkout should not fail with them.

Auto-Approve on Success (PRO)

A new “Auto-approve on Success” option has been added.

When a customer’s number verifies, their exemption is approved automatically. Numbers that fail are left pending for you to review, rather than being declined outright.

This pairs well with the “Approved users only” restriction. Genuine customers get through without waiting, and only the ones that need a look land in your queue.

Consultation References & Proof of Checks (PRO)

Successful VIES and HMRC checks now record a consultation reference against both the customer and the order. This is the evidence you need to show that you verified a customer’s VAT number.

The verification badge also explains itself on hover, wherever it is shown. It tells you which official register the number was looked up in, or that only its checksum or format could be checked and why, along with the name the register holds for it, the consultation reference, and when it was last checked.

There is also a new “Re-check” button on the customer profile and the Exempt Customers page, so you can re-verify a stored number at any time.

Expiry Reminder Emails (PRO)

When the “Expiration Date” field is enabled, you can now email customers before their exemption expires.

Set the reminder days on the new “Expiration” settings tab, for example 30, 7 and 1 days before. Each email includes a link to renew their details on the My Account page.

There is also an optional “Tax Exemption Expired” email, sent once when an exemption lapses. Both emails are on the Emails settings tab and can be customised, using the new {expiration_date}, {days_until_expiry} and {renew_url} merge tags.

To help you keep on top of it all:

  • An “Expiring Soon” / “Expired” filter and status badges on the Exempt Customers page.
  • A “Send Reminder” button to email a customer manually.
  • An optional daily admin digest summarising exemptions that are expiring soon or have expired.

Expired exemptions are now deactivated by a daily scan, instead of waiting until the customer next reaches the checkout page. This keeps the Exempt Customers list accurate.

Default Validity Period (PRO)

A new “Default Validity Period” option lets you calculate expiration dates automatically.

Set it to something like 12 months, and every exemption expires that far from when it was set up or renewed. The manual expiration date field is then hidden from customers, so they cannot set their own.

Tax Exemption on Express Checkout

Tax exemption is now applied on accelerated and express checkout, such as Apple Pay, Google Pay and Stripe Link.

These flows skip the normal checkout fields entirely, so tax was previously charged in full. A logged in customer’s saved exemption is now used instead.

It is still checked properly first. Their approval status, allowed user roles and expiration date are all respected before any tax is removed.

Block Checkout Is No Longer Beta

The tax exemption checkbox and form are now shown directly on the WooCommerce block checkout by default.

The “[Beta] Block Checkout: Checkbox + Form” setting has been removed, as it is now always enabled.

The “Settings on My Account Page” option can also be turned off while using the block checkout. It was previously forced on and locked, because the block checkout relied on linking customers to the My Account page.

Admin Redesign

We have also completely redesigned admin pages with a new admin header, and completely overhauled settings page.

Update Now

Version 3.0.0 is available now from your WordPress dashboard, or from the plugin page on WordPress.org.

Registration number verification, expiry reminder emails and the default validity period are part of the PRO version. You can find out more on the Tax Exemption for WooCommerce page.

As always, if you run into any problems or have a feature you would like to see, please get in touch.

Full Changelog

  • New: Added an option to show a “Registration Number” field to the tax exemption form, so customers can supply a VAT number, charity number, ABN, GSTIN, EIN, resale certificate number and more. Choose which number types your store accepts on the new “Registration Number” settings tab; tick a single type and the type dropdown is hidden entirely so customers just see one field.
  • New: The registration number is shown alongside the other exemption details everywhere they already appear – the customer’s account, the Exempt Customers and Exempt Orders pages and their CSV exports, the admin order screen, and the admin notification emails.
  • New: (PRO) Added registration number verification. Every number is checked against its own format and checksum rules, and the types that have an official register can be looked up live: EU VAT via VIES, UK VAT via HMRC, Australian ABNs via the ABR, and English & Welsh charity numbers via the Charity Commission. Each number type is its own row on the settings tab, and the types with a register expand to hold that register’s setup, so everything for a given type lives in one place.
  • New: (PRO) Added an “Auto-approve on Success” option. When a customer’s number verifies, their exemption is approved automatically. Numbers that fail are left pending for you to review rather than being declined outright.
  • New: (PRO) Successful VIES and HMRC checks record a consultation reference against the customer and the order – the evidence you need to show you verified a customer’s VAT number.
  • New: (PRO) Added a “Re-check” button on the customer profile and the Exempt Customers page to re-verify a stored number on demand.
  • New: (PRO) The verification badge now explains itself on hover, wherever it is shown: which official register the number was looked up in – or that only its checksum or format could be checked, and why – along with the name the register holds for it, the consultation reference and when it was last checked.
  • New: (PRO) Added automatic certificate/exemption expiry reminder emails. When the “Expiration Date” field is enabled, you can now send customers reminder emails a configurable number of days before their tax exemption expires (e.g. 30, 7 and 1 days before), each with a link to renew their details on the My Account page.
  • New: (PRO) Added an optional “Tax Exemption Expired” email, sent once to the customer when their exemption lapses.
  • New: (PRO) Added an “Expiring Soon” / “Expired” filter and status badges to the “Exempt Customers” admin page, so you can quickly see which exemptions need attention.
  • New: (PRO) Added a “Send Reminder” button on the “Exempt Customers” admin page to manually send an expiry reminder email to a customer.
  • New: (PRO) Added an optional daily admin digest email summarising exemptions that are expiring soon or have expired.
  • New: (PRO) Added an optional “Default Validity Period” setting. When enabled, exemption expiration dates are calculated automatically (e.g. valid for 12 months from setup/renewal) and the manual expiration date field is hidden from customers.
  • New: Added two new customer emails (“Tax Exemption Expiring Soon” and “Tax Exemption Expired”) to the Emails settings tab, with new {expiration_date}, {days_until_expiry} and {renew_url} merge tags.
  • Tweak: Redesigned the admin settings page.
  • Tweak: (PRO) A register being temporarily unreachable is never treated as an invalid number. Customers are only ever blocked when a register actively rejects their number and you have chosen to block on failure – VIES member state services go offline regularly, and a checkout should not fail with them.
  • New: Tax exemption is now applied on accelerated/express checkout (Apple Pay, Google Pay, Stripe Link and similar), where the normal checkout fields never load and tax was previously charged in full. A logged in customer’s saved exemption is used, and is still checked against their approval status, allowed user roles and expiration date before any tax is removed.
  • Tweak: The tax exemption checkbox and form are now shown directly on the WooCommerce block checkout by default, and are no longer a beta feature. The “[Beta] Block Checkout: Checkbox + Form” setting has been removed as it is now always enabled.
  • Tweak: The “Settings on My Account Page” option can now be turned off while using the block checkout. It was previously forced on and locked, as the block checkout relied on linking customers to the My Account page.
  • Tweak: Standardised expiry date comparisons to use the site timezone (current_time) for consistency.
  • Tweak: (PRO) Expired exemptions are now deactivated by the daily expiry scan, rather than waiting until the customer next reaches the checkout page. This keeps the “Exempt Customers” list accurate and makes sure a lapsed exemption cannot be used on express checkout.
  • Tweak: (PRO) The “Tax Exemption Expired” email is only sent for exemptions that lapsed within the last 30 days, so turning the feature on cannot email years of previously expired customers in one go. Use the “tefw_expired_email_max_age_days” filter to change the window.
  • Tweak: (PRO) The admin expiry digest email now lists at most 100 customers per section and reports how many more were not shown, so stores with a large number of exempt customers still get a usable email. Use the “tefw_expiry_digest_max_rows” filter to change the limit.
  • Tweak: (PRO) The “Exempt Customers” list now also matches customers on their expiration date, so anyone whose exemption has lapsed stays visible under the “Expired” filter.
  • Tweak: (PRO) Where an exemption certificate is required but there is no upload field on the page being submitted (the cart checkbox, block checkout, or checkout with “Show on Checkout” disabled), the message now points the customer to the “Tax Exemption” page in “My Account” instead of only repeating that a certificate is needed.
  • Fix: Fixed an issue where the Emails settings tab accordions would not open, and several other settings (Custom Text restriction notes, Stripe Tax, Block Checkout and AvaTax enforcement, and the selected states options) would not show or hide correctly, caused by a JavaScript error on the plugin settings page.
  • Fix: Fixed an issue where the “Tax Exemption” tab could be missing from the My Account menu on block-based or page-builder account pages, even though the endpoint page loaded correctly, by registering the endpoint with WooCommerce’s query var system.
  • Fix: Fixed an issue where a product’s tax class could be permanently changed to the tax exemption class. The exemption is only ever applied while a customer is shopping, but the exempt tax class could previously be picked up in the WordPress admin and by external tools, so using Quick Edit or Bulk Edit on the Products list, importing products, or syncing products through the REST API could save it to the product for good. The exemption is now limited to the storefront, cart and checkout only.
  • Fix: Fixed the excessive spacing above and below the tax exemption message (“Want to claim tax exemption? Click here”) on checkout, caused by line break tags being added around the message.
  • Fix: (PRO) Fixed an issue where the “Required” setting for exemption certificates was not enforced on block checkout, so customers could tick the tax exemption checkbox and place an order without uploading a certificate. The certificate is now required on the cart and block checkout as well, and the order is blocked if one is missing.
  • Fix: (PRO) Fixed an issue where a failed certificate upload on checkout (for example a file that was not a PDF, or was over the maximum upload size) was treated as successful, allowing the order to be placed with no certificate actually saved. Failed uploads now show the reason and the certificate is re-requested.
  • Fix: (PRO) Fixed an issue where the “Per-Order Upload” certificate setting was not enforced for returning customers, whose previously uploaded certificate was reused instead of a new upload being requested for each order.
  • Fix: (PRO) Fixed an issue where customers who already had a certificate on file were still forced to upload a new one on checkout.
  • Fix: (PRO) Fixed an issue where the certificate upload field was shown on checkout even when the “Show on Checkout” setting was disabled, leaving a required field that could not be completed.
  • Fix: (PRO) Fixed an issue where the required certificate field could prevent the checkout form from being submitted at all when the tax exemption checkbox was not ticked.
  • Fix: (PRO) Hardened the checkout certificate upload so an uploaded certificate can only be claimed by the customer who uploaded it. The file name was previously trusted from the checkout form on its own, so a known file name could be used to satisfy the “certificate required” check, and be attached to an account, without a file actually being uploaded.
  • Other: Updated the Freemius SDK.





Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
code web softwareweb-programmingprogrammingbinary-dataprogramming-codeweb-1picturesearchpadlockideaemaildomaingoalgoal-1 online-shop televisioncomputermonitor cloud-computingcloud-computing-1statisticscodingdata computer-1collectivecontentlayoutshoppinghelp question technical-supportcustomer-supportsupportsiren bugspeedometerspeed performance speedometer-1speedometer-2speedometer-3result growth updatecloud-computing-2databasestartup analysis team analysis-1 medal responsive responsive-1 plug shutdownturn-on ekg-monitorservercloud worldglobala2heartbeatheartbeat-1 raylike like-1shield secure-shieldno-stoppingno-entry-signfirewallfirewall-1shield-1 secureaccess-deniedpasswordlogin-passwordsecuritysign-inblockssllockencryptionantivirusantivirus-1bug-1 bug-2insurance trustrocket fireworks gift-shopstorebankbank-1bank-2standcompanystore-1brokeragebank-3 business-and-financebank-4 business-and-finance-1 bank-5 bank-6 bank-7 architecture-and-cityshop-Cafe-restaurant-coffee-Buildingcafecoffee-shop-Cafe-restaurant-Buildinguserbank-8cafe-1business-and-finance-2brancharchitecture-and-city-1shopshop-1coding-1 shop-2cloud-computing-3server-1server-2server-3cloud-1 server-4 server-5cloud-computing-4cloud-2cloud-computing-5cloud-computing-6security-1cloud-3cloud-4backup cloud-5security-2cloud-6 server-6cloud-7infoinfo-1stopwatchspeed-1 user-1 user-2user-3 user-4 loginconversation company-1loadingwordpress computer-2 computer-3 optimizationcomputer-4 hotel computer-5 hotel-1 favourite-starcredit-cardappmonitor-1 responsive-2responsive-3Responsive-Website-Design-Development-Computersmartphoneweb-settingsapplicationmaintenancedashboard email-1 communicationscommunications-1communications-2communications-3discuss-issueinformationquestion-1surveysurvey-1question-2QUESTIONquestion-3INFOui ui-1 server-7cloud-8 server-8