Skip to main content
WooCommerce

Compatibility

WooCommerce feature and plugin compatibility for the Aldersverificering WooCommerce plugin.

WooCommerce Blocks (Cart & Checkout)

The plugin supports WooCommerce's standard classic and block-based checkout. For Blocks, the Store API woocommerce_store_api_checkout_order_processed hook checks the order before payment. A required verification is validated server-side in both flows.

From version 1.2.0, the optional foreign-delivery setting checks the final shipping destination, delivery method, and age-restricted items to decide whether verification is required. Local pickup, including Blocks pickup, still requires verification for age-restricted items.

The plugin declares cart_checkout_blocks compatibility.

High-Performance Order Storage (HPOS)

The plugin is compatible with WooCommerce High-Performance Order Storage (custom order tables). It declares custom_order_tables compatibility via FeaturesUtil::declare_compatibility().

WPML and Polylang

When WPML or Polylang is active, the plugin automatically resolves each cart item to the source-language product before reading age gate settings. This is necessary because translated products are stored as separate posts — age gate meta is written only to the original post.

No extra configuration is required.

WooCommerce Subscriptions

For subscription products, age verification is required at the initial checkout when the subscription is created. Automatic renewal orders are processed server-side without a browser session and do not go through the standard checkout hooks — they do not require re-verification.

This is the expected behaviour: the customer verified their age when they first subscribed.

Page builders (Elementor, Divi, and others)

The plugin uses WooCommerce's standard server hooks and does not replace checkout templates. The foreign-delivery option does not inject a checkout banner, watch address fields, or intercept the place-order button.

Test your specific checkout integration before enabling it. A familiar checkout layout alone does not establish compatibility: integrations must submit complete shipping details and pass through the relevant WooCommerce server hooks. Proprietary order/payment routes, multi-address shipping extensions, and express-payment plugins need separate checks. Custom pickup methods should register through woocommerce_local_pickup_methods.

Payment gateways

The standard flow validates verification through woocommerce_checkout_process for classic checkout and woocommerce_store_api_checkout_order_processed for Blocks. With the foreign-delivery option enabled, the plugin also validates submitted classic checkout details through woocommerce_after_checkout_validation and checks the resulting order before payment. An order can already exist when a check rejects payment; the presence of an order is not proof of successful verification.

For orders processed under the foreign-delivery option, version 1.2.0 also checks standard order-payment retries and Store API payment of existing orders. A recorded successful verification can cover a retry after the browser token expires if the recorded age is sufficient and the active key is unchanged. Foreign delivery is never recorded as verification. Historical/manual orders outside this policy retain their existing payment flow.

Test both checkout and payment retries with the gateways and express-payment routes your store actually offers. See Delivery outside Denmark.

Classic vs. block product editor

Both the classic product editor and the newer block-based product editor are supported. The Age Verification meta box appears in the sidebar of both editors.

On this page