Delivery outside Denmark
Configure the optional delivery-country rule introduced in WooCommerce plugin version 1.2.0.
Version 1.2.0 adds an optional way for customers receiving physical goods outside Denmark to continue without MitID. The setting is off by default. Your existing product, category, variation, and minimum-age rules still determine which items require an age check.
Enable the setting
- Install plugin version 1.2.0 or later using the update guide.
- Open WooCommerce → Settings → Aldersverificering.
- In the Age Verification card, enable Allow delivery outside Denmark without MitID under Delivery outside Denmark. The Danish label is Tillad levering uden for Danmark uden MitID.
- Keep age verification enabled and configure an API key for your selected environment.
- Save and test the cases below on staging before enabling the option on your live store.
Use this option only where your products and destination-country requirements permit checkout without MitID. The setting does not establish that a sale is exempt from age-verification requirements or provide another method of verifying age.
What the customer sees
The cart dialog includes a secondary, underlined Delivery outside Denmark link (Levering uden for Danmark in Danish). It opens your configured WooCommerce checkout so the customer can enter a delivery address. The link does not verify the customer or save an exemption.
While the setting is enabled, customers can reach checkout before verification. When they submit the order, the server checks the final shipping destination, delivery method, and age-restricted items. A foreign billing address alone does not remove the MitID requirement.
| Order details | MitID required for age-restricted items? |
|---|---|
| Delivery to Denmark | Yes |
| All age-restricted items are physical goods shipped to a supported country outside Denmark, with a delivery method selected | No |
| Foreign billing address with delivery to Denmark | Yes |
| Danish billing address with eligible physical goods shipped outside Denmark | No |
| Local pickup, including Blocks pickup | Yes |
| An age-restricted virtual product, including in a mixed cart | Yes |
| Missing, invalid, or unsupported shipping country | Yes |
| Missing shipping method | Yes |
If a customer follows the foreign-delivery link but chooses Denmark, WooCommerce displays an error directing them back to the cart to verify. Changing the destination to Denmark does not preserve an earlier foreign-delivery exemption.
Disable the option and save to restore verification before checkout.
Payment retries and order records
The plugin checks the actual order before payment as well as the submitted checkout details. For orders handled by this setting, it also checks standard WooCommerce payment retries and Store API payment of existing orders.
An order that passed verification records the age requirement satisfied and a hash of the active public key. This lets payment be retried after the browser token expires, provided the recorded age still meets the requirement and the active key is unchanged. The JWT and identity details are not stored on the order. An order allowed through the foreign-delivery rule is not recorded as age-verified.
Historical and manually created orders that never passed through this optional policy retain their existing payment flow. Order verification records remain when the plugin is deleted.
Checkout compatibility
The rule uses WooCommerce's server hooks for classic checkout and Blocks/Store API. It does not add a checkout banner, replace templates, watch address fields, or change payment methods.
Test your particular checkout and payment setup before enabling the option. Proprietary order/payment routes, multi-address shipping, and express-payment plugins need separate compatibility checks. Developers of custom pickup methods should register them through woocommerce_local_pickup_methods so the plugin recognises them as pickup. See Compatibility.
Test before enabling on your live store
Use a staging store, a test API key, and a payment gateway in its test mode. Start each unverified scenario in a fresh browser session without a verification cookie.
- With the setting off, confirm that an age-restricted cart still requires verification before checkout.
- Enable the setting and confirm that the foreign-delivery link opens checkout.
- Submit an eligible physical order to a supported foreign shipping country without verification; confirm it can proceed.
- Repeat with a foreign billing address and Danish shipping address; confirm it is blocked until verification.
- Repeat with a Danish billing address and an eligible foreign shipping address; confirm the shipping destination determines the result.
- Change a foreign destination to Denmark before submitting; confirm verification is required.
- Test local pickup, an age-restricted virtual item, and incomplete shipping details; confirm none bypasses verification.
- Complete verification from the cart and confirm the Danish order can proceed.
- Use your payment gateway's test failure flow to retry an unpaid order. Check both a previously verified Danish order and an unverified order whose shipping destination has changed from abroad to Denmark.
- Disable the option and confirm that the original verification-before-checkout flow returns.
Run these checks for every checkout and payment route your store offers. A test API key controls the verification environment; configure your payment gateway separately to avoid real charges.