ByticsLab Age Restrictions for WooCommerce

Description

ByticsLab Age Restrictions for WooCommerce lets you mark individual products (alcohol, tobacco, adult content, age-restricted supplements, etc.) as age-restricted and configure exactly how age verification is presented to visitors.

Features

  • Mark any simple or variable product as age-restricted from the standard product edit screen — no new post type, no extra database tables.
  • Configurable minimum age (18, 21, or any custom value).
  • A responsive, accessible age-verification modal shown on restricted product pages before the content is visible, with a configurable title, message, minimum age, confirm button, and exit button.
  • Exit button can redirect to the homepage, a custom URL, or any WordPress page.
  • Visitor confirmation is remembered via a lightweight cookie for a configurable number of days (or just the current browser session), so the modal doesn’t repeat on every page view.
  • Optional age-restriction badge on shop/archive listing pages (e.g. “18+ Age Restricted”).
  • Optional warning message below the Add to Cart button on restricted product pages.
  • Optional warning notice on the Cart and Checkout pages when a restricted product is in the cart — works with both the classic Cart/Checkout pages and the block-based Cart/Checkout.
  • Configurable colors (badge, warning messages, modal accent) and text size, using the native WordPress color picker — no CSS editing required.
  • Translation-ready: every string is wrapped for translation, a .pot file is included, and translations are bundled for German, French, Spanish, Swedish, Danish, Norwegian, and Hindi.
  • Built with the WordPress Settings API, nonces on all form submissions, sanitized/escaped input and output throughout, and WooCommerce hooks only (no template overrides).
  • Cache-friendly: the modal is rendered identically for every visitor and toggled purely client-side, so it will not break full-page caching.

How it works

  1. Edit any product and check “Age-restricted product” in the Product Data General tab.
  2. Configure your minimum age, modal copy, and display options under WooCommerce Age Restriction.
  3. Visitors who open a restricted product page see the age-verification modal first. Confirming lets them view the page (remembered via cookie); exiting redirects them away.
  4. Optional badges and warning messages reinforce the restriction on listing pages, the product page, and cart/checkout.

Screenshots

Installation

  1. Make sure WooCommerce is installed and active.
  2. Upload the byticslab-age-restrictions-for-woocommerce folder to /wp-content/plugins/, or install the plugin ZIP via Plugins Add New Upload Plugin.
  3. Activate the plugin through the Plugins menu in WordPress. (Activation is blocked with an explanatory message if WooCommerce is not active.)
  4. Go to WooCommerce Age Restriction to configure the minimum age, modal text, exit behavior, and display options.
  5. Edit any product you want to restrict and check Age-restricted product in the Product Data General tab.

FAQ

Does this work with variable products?

Yes. The age-restricted flag is set at the product level (the parent product), so it applies to simple and variable products alike — individual variations don’t need to be flagged separately.

Will this break page caching?

No. The modal markup is rendered identically for every visitor; a small script decides whether to display it based on a client-side cookie. The server never renders different HTML per visitor, so full-page caching plugins and CDNs are unaffected.

Is this compatible with WPML, Polylang, or Loco Translate?

The plugin’s own interface strings (labels, buttons, error messages) are wrapped with standard WordPress i18n functions and ship with a .pot file, so tools like Loco Translate can translate the plugin UI immediately, and WPML/Polylang can translate it as a standard text-domain-based plugin.

The content you type into the settings (modal title/message, warning text, badge text) is stored as plain option values, which are not automatically per-language. To show different wording per language for that content, register the relevant option fields with your multilingual plugin’s string translation feature (e.g. WPML’s String Translation, or Polylang’s settings translation) — this has not been pre-wired or tested against every multilingual plugin/version combination, so please verify on your setup before relying on it in production.

What happens to my settings if I deactivate the plugin?

Nothing — settings and product meta are preserved. They are only removed if you delete the plugin from the Plugins screen.

Does the cart/checkout warning work with the block-based Cart and Checkout pages?

Yes. The warning is displayed on both the classic, shortcode-based Cart/Checkout pages and the block-based Cart and Checkout blocks.

Once I confirm my age on one product, do I have to confirm again for other restricted products?

No. The confirmation is remembered site-wide (via a single cookie) for the configured number of days, not per product. Once you confirm on any age-restricted product, you won’t see the modal again on other restricted products until the cookie expires or is cleared.

What data does this plugin store in cookies?

The plugin sets one cookie, named waarm_age_verified, in the visitor’s browser when they click the confirmation button on the age-verification modal. It stores only a fixed value (1) meaning “this visitor has confirmed they meet the minimum age” — no personal data, no actual age or birthdate, and no tracking identifiers. It expires after the number of days set in Remember Confirmation For (days) under the plugin settings (or when the browser session ends, if that setting is 0). No other cookies are set by this plugin.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“ByticsLab Age Restrictions for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release.