

The date of birth field in the checkout.
This plugin asks for a date of birth where the order is placed and rejects the order on the server if the customer is below your minimum age. It also covers express payment buttons, which skip the checkout form, and it reports every order that came in without a valid age check.
What it is, and what it is not. The plugin checks a date of birth that the customer enters. It assists your shop with its age control. It does not verify identity documents and it does not guarantee legal compliance. You remain responsible for meeting the rules that apply to your products and your country. If you need document verification, use a dedicated identity service.
Most age plugins show a popup when someone opens the shop. A popup is answered with one click and has no connection to the order. This plugin works at the other end: at the moment the order is placed, on the server.
The plugin asks for the date of birth next to the express buttons of these plugins and rejects their orders without a confirmed age:
The date of birth is asked on classic product and cart pages. At checkout, the express buttons above the form stay locked until the date of birth field in the form holds a valid date. In the cart block and the mini cart the buttons are shown without the question, and orders from there are rejected until the age is confirmed elsewhere.
Express buttons of other plugins are not unlocked by this plugin. Their orders are rejected where they use the standard WooCommerce order routes, and reported by the safety net otherwise. Developers can add their own adapter with the filter bf_agecheck_express_adapters.
A note on honesty: payment plugins are third-party code. One of the supported plugins can create an order on a route of its own that bypasses the standard WooCommerce order routes. For that route the plugin relies on hooks of the payment plugin. If those hooks change, the Site Health test tells you, and the safety net still reports such orders.
bf_agecheck_min_age changes the default minimum age.bf_agecheck_product_min_age sets the minimum age of a single product, bf_agecheck_required_age that of a whole cart or order.bf_agecheck_requires_check switches the check off, for example on a staging site. Answer it the same way in every context.bf_agecheck_customer_message changes the customer messages.bf_agecheck_date_formats adds accepted date formats.bf_agecheck_send_alert suppresses the email notice, for example on a staging site.bf_agecheck_log switches entries in the WooCommerce log off, all or by event.bf_agecheck_classic_field_hook moves the field in the classic checkout.bf_agecheck_express_adapters and bf_agecheck_express_selectors add or adjust support for express payment plugins.bf_agecheck_move_paypal_button keeps the PayPal button on the product page where it was.bf_agecheck_binding_statuses and bf_agecheck_monitor_order control which orders the safety net watches.bf_agecheck_legacy_meta_keys lists meta keys of an earlier solution, so existing orders keep their age.This plugin is an independent project by Blueforce Digital Solutions. It is not affiliated with Automattic, WooCommerce or any payment provider. Product names are used only to describe compatibility.