You’re right that a self-entered birthdate can’t really verify anything, since anyone can type any date. Proper age assurance requires checking an identity document, so the reliable route is integrating a third-party identity verification service into your registration flow rather than a simple checkbox or date field. I’d also check the regulations that apply to your audience first, since the required level of verification varies by region.
Have you tried any standard WP plugins for that?
We could then find a hook to verify the bp birthdate xprofile field, and take it from there.
I’m the author of XYZ Age Verification. (There’s a free version in the WordPress.org repository.) I have integrations built for other membership systems and would be happy to add support for BuddyPress. I don’t have any personal experience with BuddyPress, yet.
The best approach depends on the level of assurance the site needs and the privacy requirements that apply to its users. I’d look for a solution that minimizes the personal data collected while still meeting the site’s legal and safety requirements. It’s also worth checking whether the verification plugin integrates properly with BuddyPress registration and profile workflows.