[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f0wgSMqrO2shwtjCxmbCYQnpi58TxE7JGQG7k778ZGEg":3,"$fo3LGoNB_9cS2n66FJF74Ao4iqrQBkk1ZYsouZk35KgY":199,"$fHP9jjGmrm84srZqQWqzkBYfB_HOAZXkmAhi3FAEkJSs":204},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":16,"download_link":23,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26,"discovery_status":27,"vulnerabilities":28,"developer":29,"crawl_stats":25,"alternatives":34,"analysis":130,"fingerprints":169},"legal-age-sign","Legal Age Sign","1.5","sdmeier","https:\u002F\u002Fprofiles.wordpress.org\u002Fsdmeier\u002F","\u003Cp>The Legal Age Sign plugin provides a dynamic, live-updating compliance sign for websites selling age-restricted products. It automatically calculates the exact cutoff date based on the visitor’s local device time and your custom age requirements (e.g., 18 or 21). The sign features a live clock and updates the “Born on or before” date automatically at midnight without requiring a page refresh.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Customizable Age Limit: Set the minimum required age directly in the settings, and the math will automatically adapt.\u003C\u002Fli>\n\u003Cli>Live Time & Date: Displays the visitor’s current local date and time.\u003C\u002Fli>\n\u003Cli>Auto-Updating Birth Date: Automatically calculates the required cutoff date in real-time.\u003C\u002Fli>\n\u003Cli>Fully Customizable: Change warning text, phone numbers, and images directly from the WordPress dashboard.\u003C\u002Fli>\n\u003Cli>Theme Integration: Automatically inherits your website’s default fonts and text colors to blend seamlessly with your active theme.\u003C\u002Fli>\n\u003Cli>Portable Images: Default compliance images are packaged directly inside the plugin.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>To display the sign on any Page, Post, or Widget area, simply insert the following shortcode:\u003C\u002Fp>\n\u003Cp>[legal_age_sign]\u003C\u002Fp>\n\u003Ch3>Configuration & Settings\u003C\u002Fh3>\n\u003Cp>You do not need to edit any code to change the text, age, or images on the sign.\u003C\u002Fp>\n\u003Col>\n\u003Cli>In your WordPress dashboard navigation menu, go to Settings > Age Sign Settings.\u003C\u002Fli>\n\u003Cli>Age Requirement: Enter the minimum age required to purchase your products (e.g., 18, 21).\u003C\u002Fli>\n\u003Cli>Images: By default, the plugin uses its built-in images. To override them, paste the full URL of any image from your WordPress Media Library into the text boxes.\u003C\u002Fli>\n\u003Cli>Warning Text: Customize the product type (e.g., “ALCOHOL!”, “TOBACCO!”, “VAPE PRODUCTS!”), the violation text, and the local reporting phone number.\u003C\u002Fli>\n\u003Cli>Click “Save Changes” and your sign will instantly update across your entire site.\u003C\u002Fli>\n\u003C\u002Fol>\n","Legal Age Sign - WordPress Plugin Version: 1.5 Author: SDMEIER",0,184,"2026-03-06T15:36:00.000Z","6.9.4","5.0","",[18,19,20,21,22],"age-gate","age-verification","compliance","drinking-age","warning-sign","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flegal-age-sign.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":11,"avg_security_score":24,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},1,30,94,"2026-05-20T02:21:51.280Z",[35,51,75,94,113],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":11,"downloaded":43,"rating":11,"num_ratings":11,"last_updated":44,"tested_up_to":14,"requires_at_least":45,"requires_php":46,"tags":47,"homepage":16,"download_link":50,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"borderage-core","Borderage Core","0.1.0","brekam","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrekam\u002F","\u003Cp>Borderage Core protects your WordPress site by requiring age verification for visitors. Unlike traditional ID-based systems, BorderAge uses \u003Cstrong>hand gesture recognition\u003C\u002Fstrong> – no selfie, no ID document required.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Protect entire site or specific pages\u003C\u002Fli>\n\u003Cli>Hand gesture verification (no facial recognition)\u003C\u002Fli>\n\u003Cli>Visitor account system for returning users\u003C\u002Fli>\n\u003Cli>Unified login form (WordPress account first, then visitor account fallback)\u003C\u002Fli>\n\u003Cli>Credit alert system – Automatic email notifications when credits run low\u003C\u002Fli>\n\u003Cli>Rate limiting – Prevent brute force verification attempts\u003C\u002Fli>\n\u003Cli>Login brute-force protection – Rate limiting on account login attempts\u003C\u002Fli>\n\u003Cli>Health logging system – 24-hour internal monitoring with export\u003C\u002Fli>\n\u003Cli>Statistics dashboard – View verification metrics (total, adults, minors)\u003C\u002Fli>\n\u003Cli>Customizable verification page styling\u003C\u002Fli>\n\u003Cli>Multi-language support (EN, FR, DE, ES)\u003C\u002Fli>\n\u003Cli>Developer tools – Testing utilities and data reset\u003C\u002Fli>\n\u003Cli>Debug mode with logging and export functionality\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Requirements:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>BorderAge API credentials (site_id and site_secret_key)\u003C\u002Fli>\n\u003Cli>Credits for new verifications (existing verified users can still access)\u003C\u002Fli>\n\u003Cli>Pretty permalinks enabled in WordPress Settings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more information, visit \u003Ca href=\"https:\u002F\u002Fborderage.com\u002F\" rel=\"nofollow ugc\">borderage.com\u003C\u002Fa> or contact us at \u003Ca href=\"contact@needemand.com\" rel=\"nofollow ugc\">contact@needemand.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Admin Pages\u003C\u002Fh3>\n\u003Cp>Borderage Core provides 8 configuration tabs accessible via \u003Cstrong>BorderAge\u003C\u002Fstrong> in the WordPress admin menu:\u003C\u002Fp>\n\u003Cp>  Tab\u003Cbr \u002F>\n  Description\u003Cbr \u002F>\n  Purpose\u003C\u002Fp>\n\u003Cp>  Configuration\u003Cbr \u002F>\n  API credentials and basic settings\u003Cbr \u002F>\n  Enter your site_id, secret_key, enable\u002Fdisable plugin, set debug mode\u003C\u002Fp>\n\u003Cp>  Protection\u003Cbr \u002F>\n  Protection mode and protected pages\u003Cbr \u002F>\n  Choose to protect all pages or specific pages, configure rate limiting\u003C\u002Fp>\n\u003Cp>  Appearance\u003Cbr \u002F>\n  Form styling customization\u003Cbr \u002F>\n  Customize verification page colors, button styles, and layout\u003C\u002Fp>\n\u003Cp>  Statistics\u003Cbr \u002F>\n  Verification metrics dashboard\u003Cbr \u002F>\n  View total verifications, adult\u002Fminor breakdown, monthly statistics\u003C\u002Fp>\n\u003Cp>  Guide\u003Cbr \u002F>\n  User documentation\u003Cbr \u002F>\n  Complete usage guide and setup instructions\u003C\u002Fp>\n\u003Cp>  Developers\u003Cbr \u002F>\n  API documentation\u003Cbr \u002F>\n  Technical reference for developers integrating with BorderAge\u003C\u002Fp>\n\u003Cp>  Debug\u003Cbr \u002F>\n  Health logs viewer\u003Cbr \u002F>\n  View system health logs, export debug information\u003C\u002Fp>\n\u003Cp>  Dev Tools\u003Cbr \u002F>\n  Testing utilities\u003Cbr \u002F>\n  Reset visitor data, clear logs, testing functions (debug mode only)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Navigation:\u003C\u002Fstrong> Click on the “Borderage” menu item in WordPress admin to access all tabs. Each tab provides a specific set of configuration options and tools.\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to the \u003Cstrong>BorderAge API\u003C\u002Fstrong> at \u003Ccode>pool.borderage.com\u003C\u002Fcode> for age verification services.\u003C\u002Fp>\n\u003Ch4>When data is transmitted\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>During age verification\u003C\u002Fstrong> – When a visitor clicks “Verify now”\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Credit balance check\u003C\u002Fstrong> – When admin pages load to display remaining credits\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Statistics retrieval\u003C\u002Fstrong> – When the Statistics dashboard loads to display verification metrics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Health logging\u003C\u002Fstrong> – Internal monitoring events (not transmitted to external API)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Data transmitted\u003C\u002Fh4>\n\u003Cp>  Data\u003Cbr \u002F>\n  Description\u003Cbr \u002F>\n  Purpose\u003C\u002Fp>\n\u003Cp>  site_id\u003Cbr \u002F>\n  Your site identifier\u003Cbr \u002F>\n  Identify your site\u003C\u002Fp>\n\u003Cp>  user_id\u003Cbr \u002F>\n  SHA256 hashed visitor ID\u003Cbr \u002F>\n  Pseudonymized visitor tracking\u003C\u002Fp>\n\u003Cp>  age\u003Cbr \u002F>\n  Age threshold\u003Cbr \u002F>\n  Verification requirement\u003C\u002Fp>\n\u003Cp>  hash\u003Cbr \u002F>\n  Security signature\u003Cbr \u002F>\n  Request validation\u003C\u002Fp>\n\u003Cp>  is_over_age\u003Cbr \u002F>\n  Boolean (true\u002Ffalse)\u003Cbr \u002F>\n  Age verification result\u003C\u002Fp>\n\u003Cp>  result_hash\u003Cbr \u002F>\n  Callback validation hash\u003Cbr \u002F>\n  Verify callback authenticity\u003C\u002Fp>\n\u003Cp>  reference_id\u003Cbr \u002F>\n  Attempt reference for rate limiting\u003Cbr \u002F>\n  Track verification attempts\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hash Generation:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Credits check: \u003Ccode>hash('sha256', timestamp . site_id . secret_key)\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Callback verification: \u003Ccode>hash('sha1', result . user_id . age . secret_key)\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Privacy note:\u003C\u002Fstrong> This plugin and the BorderAge API store only pseudonymized data: a hashed visitor ID and a boolean indicating whether the age threshold was met. \u003Cstrong>Zero Personally Identifiable Information (PII)\u003C\u002Fstrong> is stored or transmitted – no names, emails. Unlike competitors, BorderAge uses \u003Cstrong>no biometric fingerprinting\u003C\u002Fstrong>, \u003Cstrong>no selfies\u003C\u002Fstrong>, and \u003Cstrong>no ID documents\u003C\u002Fstrong>. This eliminates any risk of personal data leaks, as such data simply doesn’t exist in our system.\u003C\u002Fp>\n\u003Cp>For more details about BorderAge’s technology and privacy-first approach, visit \u003Ca href=\"https:\u002F\u002Fborderage.com\u002Ftechnology\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fborderage.com\u002Ftechnology\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Service links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fborderage.com\u002Fpolitique-confidentialite\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fborderage.com\u002Fpolitique-confidentialite\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Technology information:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fborderage.com\u002Ftechnology\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fborderage.com\u002Ftechnology\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service website:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fborderage.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fborderage.com\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Terms of Service:\u003C\u002Fstrong> BorderAge’s Terms of Use are negotiated individually between each client and Needemand (creator of the BorderAge SaaS). Contracts are established on a case-by-case basis rather than using a generic public ToS. Please contact BorderAge to discuss your specific terms.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Data processed by this plugin:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Visitor verification status\u003C\u002Fstrong> – Stored in browser cookies to remember verified visitors (expires after 24 hours)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Visitor accounts\u003C\u002Fstrong> – Optional accounts for returning visitors (email, hashed password)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verification logs\u003C\u002Fstrong> – Records of verification callbacks for debugging (24-hour retention)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Health logs\u003C\u002Fstrong> – Internal system monitoring logs (24-hour retention, JSON format)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Data sent to the external BorderAge API:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Only pseudonymized data is transmitted and stored: a hashed visitor ID (SHA256) and a boolean indicating whether the age verification was successful (is_over_age: true\u002Ffalse). Additional metadata includes site_id, age threshold, and security hashes for validation.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What makes BorderAge different:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Zero PII storage\u003C\u002Fstrong> – Neither this plugin nor the BorderAge API store any Personally Identifiable Information\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No biometric fingerprint\u003C\u002Fstrong> – No biometric data is collected, stored, or transmitted\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No data leak risk\u003C\u002Fstrong> – Impossible to leak personal data that doesn’t exist\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy by design\u003C\u002Fstrong> – Hand gesture verification without selfies, ID documents, or facial recognition\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rate limiting protection\u003C\u002Fstrong> – Prevents brute force verification attempts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic cleanup\u003C\u002Fstrong> – Verification tokens and logs expire after 24 hours\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For complete privacy information, see the \u003Ca href=\"https:\u002F\u002Fborderage.com\u002Fpolitique-confidentialite\u002F\" rel=\"nofollow ugc\">BorderAge Privacy Policy\u003C\u002Fa>.\u003C\u002Fp>\n","Protect your WordPress pages by verifying visitor age via the BorderAge API using hand gesture recognition.",167,"2026-03-18T15:14:00.000Z","6.2","8.1",[48,18,19,20,49],"adult-content","hand-gesture","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fborderage-core.zip",{"slug":18,"name":52,"version":53,"author":54,"author_profile":55,"description":56,"short_description":57,"active_installs":58,"downloaded":59,"rating":60,"num_ratings":61,"last_updated":62,"tested_up_to":63,"requires_at_least":64,"requires_php":65,"tags":66,"homepage":70,"download_link":71,"security_score":72,"vuln_count":73,"unpatched_count":11,"last_vuln_date":74,"fetched_at":26},"Age Gate","3.7.2","Phil","https:\u002F\u002Fprofiles.wordpress.org\u002Fphilsbury\u002F","\u003Cp>There are many uses for restricting content based on age, be it movie trailers, beer or other adult themes. This plugin allows you to set a restriction on what content can been seen or restricted based on the age of the user.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Ask users to verify their age on page load\u003C\u002Fli>\n\u003Cli>SEO Friendly – common bots and crawlers are omitted from age checks\u003C\u002Fli>\n\u003Cli>Ability to add custom user agents for less common bots\u003C\u002Fli>\n\u003Cli>Shortcode for in content restrictions\u003C\u002Fli>\n\u003Cli>Choose to restrict an entire site, or selected content\u003C\u002Fli>\n\u003Cli>Select a different age on individual content\u003C\u002Fli>\n\u003Cli>Allow certain content to not be age gated under “all content” mode\u003C\u002Fli>\n\u003Cli>Three choices for input; dropdowns, input fields or a simple yes\u002Fno button\u003C\u002Fli>\n\u003Cli>Customise the order of the inputs based on your region (DD MM YYYY or MM DD YYYY)\u003C\u002Fli>\n\u003Cli>Allow a “remember me” check box if desired\u003C\u002Fli>\n\u003Cli>Ability to omit logged in users from being checked\u003C\u002Fli>\n\u003Cli>Add your own logo\u003C\u002Fli>\n\u003Cli>Update the text displayed on the entry form\u003C\u002Fli>\n\u003Cli>Select background colour\u002Fimage, foreground colour and text colour\u003C\u002Fli>\n\u003Cli>Use built in styling out of the box, or your own custom style\u003C\u002Fli>\n\u003Cli>Ability to add legal note or information to the bottom of the form\u003C\u002Fli>\n\u003Cli>Redirect failed logins to a URL of your choice e.g. an alcohol awareness website.\u003C\u002Fli>\n\u003Cli>Ability to use a non caching version\u003C\u002Fli>\n\u003Cli>Various hooks to add even more customisation such as additional form fields\u003C\u002Fli>\n\u003Cli>Compatible with multilingual plugins WPML, Polylang (2.3+), WP Multilang\u003C\u002Fli>\n\u003C\u002Ful>\n","A plugin to check the age of a visitor before view site or specified content",40000,1361715,92,64,"2025-10-22T19:24:00.000Z","6.8.5","6.0.0","7.4",[67,18,68,19,69],"adults-only","age-restriction","age-verify","https:\u002F\u002Fagegate.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate.3.7.2.zip",93,5,"2025-04-09 00:00:00",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":83,"downloaded":84,"rating":24,"num_ratings":85,"last_updated":86,"tested_up_to":16,"requires_at_least":87,"requires_php":88,"tags":89,"homepage":16,"download_link":92,"security_score":93,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"age-gate-lite","Age Gate Lite","0.0.7","SiD","https:\u002F\u002Fprofiles.wordpress.org\u002Fsiddhu09rocks\u002F","\u003Cp>If your content or products are about cannabis, alcohol, gambling or other adult content.\u003C\u002Fp>\n\u003Cp>Age Gate Lite makes it easier then ever to configure and style an age restriction pop up to protect younger audience.\u003C\u002Fp>\n\u003Cp>It is designed to be user friendly, simple lightweight and only requires users to confirm their age ( Yes \u002F No ).\u003C\u002Fp>\n\u003Cp>This plugin is absolutely, 100% free.\u003C\u002Fp>\n\u003Cp>Success message section included can be used for Email \u002F Newsletter Opt-in or Promotional messages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Devs 👨‍💻\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Avaliable JS Event Listeners – agl_passed & agl_failed.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cscript>\n    document.addEventListener(\"agl_passed\", function() {\n        \u002F\u002F Insert yor code for Age Gate Passed ;\n    });\n\n    document.addEventListener(\"agl_failed\", function() {\n        \u002F\u002F Insert yor code for Age Gate Failed');\n    });\n\u003C\u002Fscript>\n\u003C\u002Fcode>\u003C\u002Fpre>\n","A lightweight, customisable age gate to lock content from younger audience.",2000,14898,6,"2022-07-13T01:28:00.000Z","4.0","5.2.4",[90,18,19,69,91],"age","cannabis","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate-lite.zip",85,{"slug":95,"name":96,"version":97,"author":98,"author_profile":99,"description":100,"short_description":101,"active_installs":102,"downloaded":103,"rating":104,"num_ratings":30,"last_updated":105,"tested_up_to":106,"requires_at_least":107,"requires_php":108,"tags":109,"homepage":111,"download_link":112,"security_score":60,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"age-verification-screen-for-woocommerce","Age Verification Screen for WooCommerce","1.1.1","meowcrew","https:\u002F\u002Fprofiles.wordpress.org\u002Fmeowcrew\u002F","\u003Cp>Age Verification Screen for WooCommerce lets you restrict your website or particular pages of it using the age-restriction screen. Easily install and configure pop-up look and texts via customizer tool.\u003C\u002Fp>\n\u003Ch4>Major plugin features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Modal window or full-page pop-up to ask your users to verify their age when the page loads.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Show the age restriction pop-up only on those pages where you need it.\u003C\u002Fstrong> You can choose what pages, products, categories, or any other post types or taxonomies would be age-restricted.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Select the minimum allowed age for your website.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple ways to check user age.\u003C\u002Fstrong> You can choose between two methods of age verification – a simple checkbox or confirm\\cancel buttons.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Set up the look and feel of restriction pop-up via live customizer.\u003C\u002Fstrong> Select background color or image, blur opacity, text color, etc.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>All texts are editable through the customizer.\u003C\u002Fstrong> You are able to edit the heading, description, texts on buttons, etc.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Redirect users on failure.\u003C\u002Fstrong> Here you can find two default options – get the user to the previous page or any other page of your site (e.g., page w\u002F your age policy).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Accepts your theme styling by default.\u003C\u002Fstrong> No need to work hard on pop-up styling; it fits your website style perfectly right off the bat.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manage cookie lifetime.\u003C\u002Fstrong> Age verification pop-up should not appear once more for those who previously passed the confirmation within XX days (established by you).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Additional features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>An additional method to check the age. One more way to prevent users’ age is the date of birth picker.\u003C\u002Fli>\n\u003Cli>Redirect to external URL. If the user doesn’t reach the minimum required age, you can redirect him to the external website instead of your internal page.\u003C\u002Fli>\n\u003Cli>Age-restriction for custom taxonomies and custom post types. In case you need to restrict particular custom taxonomies or post types instead of regular ones (like product categories, products, pages, etc).\u003C\u002Fli>\n\u003Cli>Assistance from plugin developers first hand.\u003C\u002Fli>\n\u003C\u002Ful>\n","Easily add a customizable age verification screen to your store.",300,5847,20,"2024-11-01T13:50:00.000Z","6.7.5","5.6.1","5.6",[18,110,68,19,69],"age-popup","https:\u002F\u002Falpakawp.com\u002Fplugins\u002Fage-verification-screen-for-woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-verification-screen-for-woocommerce.1.1.1.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":24,"num_ratings":30,"last_updated":123,"tested_up_to":63,"requires_at_least":15,"requires_php":124,"tags":125,"homepage":128,"download_link":129,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"advanced-age-verification-popup","Advanced Age Verification Popup","1.0","Yeasin","https:\u002F\u002Fprofiles.wordpress.org\u002Fyeasin1\u002F","\u003Cp>\u003Cstrong>Advanced Age Verification Popup\u003C\u002Fstrong> is a simple, lightweight, and customizable WordPress plugin that allows you to add an age verification popup to your website. Ideal for websites selling adult products like vaping supplies, alcohol, or any age-restricted content.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Key Features\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Yes\u002FNo Button Verification\u003C\u002Fli>\n\u003Cli>Date of Birth Verification with modern Flatpickr date picker\u003C\u002Fli>\n\u003Cli>Option to enable \u003Cstrong>both methods\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Custom logo upload\u003C\u002Fli>\n\u003Cli>Editable text (Title, Buttons, Warning)\u003C\u002Fli>\n\u003Cli>Set cookie duration\u003C\u002Fli>\n\u003Cli>Redirect underage users to a custom URL\u003C\u002Fli>\n\u003Cli>Responsive and mobile-friendly\u003C\u002Fli>\n\u003Cli>WooCommerce compatible\u003C\u002Fli>\n\u003Cli>Lightweight and fast loading\u003C\u002Fli>\n\u003Cli>Flatpickr dark theme for professional look\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003Cstrong>Use Cases\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Vape and E-Cigarette Shops\u003C\u002Fli>\n\u003Cli>Alcohol and Spirits Stores\u003C\u002Fli>\n\u003Cli>CBD \u002F Cannabis Products\u003C\u002Fli>\n\u003Cli>Adult Content Sites\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Cp>None.\u003C\u002Fp>\n","Add an age verification popup with Yes\u002FNo and Date of Birth check for WooCommerce or adult sites.",80,1408,"2025-07-30T19:13:00.000Z","7.2",[48,18,19,126,127],"popup","woocommerce","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadvanced-age-verification-popup\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadvanced-age-verification-popup.zip",{"attackSurface":131,"codeSignals":154,"taintFlows":162,"riskAssessment":163,"analyzedAt":168},{"hooks":132,"ajaxHandlers":146,"restRoutes":147,"shortcodes":148,"cronEvents":153,"entryPointCount":30,"unprotectedCount":11},[133,138,142],{"type":134,"name":135,"callback":136,"file":137,"line":104},"action","wp_enqueue_scripts","legalagesign_register_assets","legal-age-sign.php",{"type":134,"name":139,"callback":140,"file":137,"line":141},"admin_init","legalagesign_register_settings",33,{"type":134,"name":143,"callback":144,"file":137,"line":145},"admin_menu","legalagesign_add_settings_page",43,[],[],[149],{"tag":150,"callback":151,"file":137,"line":152},"legal_age_sign","legalagesign_display_shortcode",177,[],{"dangerousFunctions":155,"sqlUsage":156,"outputEscaping":158,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":161},[],{"prepared":11,"raw":11,"locations":157},[],{"escaped":159,"rawEcho":11,"locations":160},23,[],[],[],{"summary":164,"deductions":165},"The \"legal-age-sign\" plugin version 1.5 demonstrates a strong security posture based on the static analysis provided. It adheres to several key security best practices, including the exclusive use of prepared statements for all SQL queries and proper escaping of all output. The absence of dangerous functions, file operations, and external HTTP requests further contributes to its secure design.  The plugin's attack surface is minimal, consisting of a single shortcode with no evident authentication or permission checks, which is a potential concern if the shortcode handles sensitive operations. However, the lack of any registered AJAX handlers, REST API routes, or cron events significantly limits the potential for exploitation.\n\nThe vulnerability history is clean, with no recorded CVEs, indicating a consistent track record of security. This, combined with the static analysis results, suggests the developers have a good understanding of secure coding principles. The primary area of concern, albeit minor due to the limited attack surface, is the single shortcode which, without explicit authorization checks mentioned, could theoretically be exploited if it performed any actions requiring user privileges.  Overall, the plugin is considered to have a good security posture, with the main area for improvement being the potential lack of authorization checks on its single entry point.",[166],{"reason":167,"points":73},"Potential lack of auth on shortcode","2026-03-17T06:26:41.530Z",{"wat":170,"direct":179},{"assetPaths":171,"generatorPatterns":174,"scriptPaths":175,"versionParams":176},[172,173],"\u002Fwp-content\u002Fplugins\u002Flegal-age-sign\u002Fpublic\u002Fcss\u002Flegal-age-sign.css","\u002Fwp-content\u002Fplugins\u002Flegal-age-sign\u002Fpublic\u002Fjs\u002Flegal-age-sign.js",[],[173],[177,178],"legal-age-sign\u002Fstyle.css?ver=","legal-age-sign\u002Fscript.js?ver=",{"cssClasses":180,"htmlComments":191,"htmlAttributes":192,"restEndpoints":194,"jsGlobals":195,"shortcodeOutput":197},[181,182,183,184,185,186,187,188,189,190],"legal-sign-wrapper","alcohol-sign-content","sign-left-column","sign-image","sign-right-column","sign-text-small","sign-text-large","sign-birth-date-container","sign-birth-date","sign-text-smaller",[],[193],"data-required-age",[],[196],"legalagesignData",[198],"[legal_age_sign]",{"error":200,"url":201,"statusCode":202,"statusMessage":203,"message":203},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Flegal-age-sign\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":11,"versions":205},[]]