Adults Only Age Verification System for WordPress


Run an Adult WordPress site? You need Adults Only Age Verification System for WordPress! Adults Only Age Verification System for WordPress is perfect for websites that have mature, alcohol, or tobacco related content.

Adults Only protects your site from being viewed by under aged person’s by verifying their birth day, as well optionally getting them to agree to your sites agreement. Here is a list of features that Adults Only boasts:

Multiple verification methods.
Simple links, input fields, or a drop down. We have all the bases covered. We also allow you to easily reorder the forms to your liking. For example: Is your site based in Australia? Easily change the form order to DD/MM/YYYY.

Search Engine Optimisation
Adults Only allows you to check if it’s really a person who’s trying to access your website, or a search engine’s crawler. If it detects a crawler, it bypasses the age verification system, and lets them do what they came to do. In other words, this feature allows your site to be indexed by crawlers.

Shortcode support
We allow you to easily disable site wide age validation in favour of shortcodes. This is perfect for those sites that have a little bit of adult content, or wish to warn users who may potentially be browsing your website at work of the NSFW nature of your post.

Highly Customisable
Adults Only AVS has a built in template system that allows you to easily customise every aspect of your age gate. Adults Only AVS comes with three templates:

Screenshot of the separate theme

The separate theme gives a discreet look to your age gate. None of your website is displayed to the visitor prior to age validation.

Screenshot of the Overlay theme

The overlay theme is a transparent window, a light box if you will, to your site. It shows just the right amount of content and style, while still protecting minors.

Screenshot of the separate theme

The page theme is an absolute god send for designers. It takes extremely important aspects of your current WordPress theme, and puts the age gate in between. In other words, it allows you to quickly set up your age gate with your current theme without touching a line of code.

Don’t like something about a theme? Easily change it using the intuitive interface that makes doing so a breeze.

Easily redirect users upon validation to a better landing page to sell your product, or service. Redirect underaged users to another one of your site that’s a little bit more age appropriate.

Free life time support
While CodeCayon doesn’t require its members to offer support, I do. I feel it’s my duty as the programmer to do so. As such, you can expect free life time support.


AGSoft contains sexually explicit material which may be offensive to some viewers. Please enter your date of birth below aswell as read, and agree to the following terms and conditions.

This page contains adult-oriented material that may be offensive to, or illegal for some readers. You must be 18 years or older to enter this page. By going beyond this point, you acknowledge that you are 18 years or older.

This page contains adult content, including still and moving images of nude adults, and other sexual material. Entering this page is prohibited if you are not at least 18 years old or if you are visiting this page from the jurisdiction of any municipality, city, state, country, or other governmental entity where viewing adult content is prohibited by law. You are under an affirmative legal obligation to leave this site NOW if you are under 18, if visiting this adult page is prohibited by law, or if you will be offended by adult content. Enter this page only if you accept each and every provision of the following agreement:

By accepting this Agreement and thereby entering this adult page, I hereby swear and affirm under oath, represent and warrant that the following statements are true:

  1. I am at least 18 years old.
  2. I am not visiting this page from the jurisdiction of any municipality, city, state, country, or other governmental entity where viewing adult content is prohibited by law. I understand the standards and laws of the community from whence I am visiting this adult page, and I have made every reasonable effort to determine whether viewing adult content is legal. I have determined that it is not illegal for me to visit this adult page.
  3. I will not allow any person under 18 years old to view any adult content from this page. I will not allow any person who is under the jurisdiction of any municipality, city, state, country, or other governmental entity where viewing adult content is prohibited by law, view any adult content on or from this page.
  4. I am entering this page because it has adult content. I do not find adult content offensive or objectionable. I believe that as an adult I have the right to choose what I see and read, and I am choosing to enter this adult page to view adult content.
  5. By entering this page, I agree to release, discharge, and hold harmless the providers, owners and creators of this page from any and all liability which might arise from viewing or reading the adult content on this page.
  6. I will not copy, upload, transmit, transfer, distribute, publish, modify or use for any commercial or other purpose any of the material on this page, including the underlying HTML source code, without permission in writing and signed by the owner of the material.
  7. Bookmarking or directly accessing any other page on this page and bypassing this Agreement shall constitute an implicit acceptance of this Agreement.
  8. If I use these services in violation of this Agreement, I understand I may be in violation of local, state, federal, international or other laws.
  9. I have read this entire Agreement and I agree to be legally bound by it.

Sitewide demo.

Note: For the purpose of an example, I’ve disabled it from setting cookies. To try again, simply refresh the page. The minimum age is set to 18.


You can only find Adults Only Age Verification System for WordPress, at CodeCayon. Click here to view the item on the CodeCayon marketplace.

You can also purchase a licence for a Standalone version for other applications.

Change log

Version 1.7.1 September 1st 2015

  • Improved category post detection
  • Fixed category age gate issue.

Version 1.7 July 3rd 2015

  • Added compatibility for certain themes that had issues with post meta.
  • Added option to disable logo in the page theme as well as post meta and shortcode.
  • Added option to default to minimum allowed year for the select validation method.
  • Added option of restricting categories. This works for both the category pages, and posts. Meaning if you view a post that has an age restricted category the age gate will show.
  • Optimized botcheck
  • Added IP comparability to botcheck to allow white listing of services that don’t follow best practices. This isn’t recommended and should be avoided(IPs can change at any time)
  • Added page(string) exclusion list. This is to allow certain use cases where you don’t have direct access to a page due to it being done by a plugin. Examples:, or Just add the string to the url and that page will no longer have an age gate on it.
  • Improved geo location age check. Also expanded the default list of ages to 41, and it now only includes countries that aren’t to 18. As I don’t have the means to test all of those countries some might not be working. Please contact me if they if any aren’t.
  • Improved comparability mode. Certain JavaScript heavy websites(think Ajax, Ajax everywhere) will no longer have issues.
  • Improved 18 to work with geo location.
  • Improved post meta by adding full theme support along side inline support. This means you can now use the overlay theme with post meta. Please note that the page theme, and inline are different as the page will generally not include other things related to the post while the include will.
  • Fixed issue with inline post meta sometimes not showing up due to WordPress settings.
  • Fixed translation issues, and made all text on the backend translatable.
  • Fixed rare string output
  • Fixed scalar value error message sometimes showing
  • Fixed separate theme JS validation issues in the drop down validation method.

Version 1.6 October 20th 2013

  • Improved Form Generation.
  • Improved Compatibility Mode.
  • Improved WooCommerce Support.
  • Improved Documentation by adding an FAQ containing certain “issues” that might arise, and how to easily fix them.
  • Improved overall responsiveness.
  • Improved setting the domain for cookies.
  • Added the option of using the separate theme for post meta. To make use of it, disable the inline age gate.
  • Added the option of hiding images when using the overlay theme.
  • Added the option of not requiring validation from logged in users.
  • Added the option of requiring age validation during registration. The validation form will appear regardless of prior validation. Note: The links validation will not work with this setting.
  • Added more text settings so you can change text without editing files.
  • Added option of changing the agreement border without editing any style sheets.
  • Added support for the shortcode, post meta, page theme, etc, to make use of all design colour options. Be sure to update your design colours.
  • If the user isn’t validated the age gate will no longer show up on the registration page, or the forgot password page.
  • Reduced the amount of business logic within themes.
  • Merged repeated css into a single style sheet, adults-only.css
  • Updated Language files
  • Corrected typo in the drop down for selecting form.
  • Corrected typo in time conversion.
  • Fixed shortcode issues with sessions.
  • Fixed issue with month, and year not being detected when input in weird circumstances.
  • Fixed an issue with the compatibility mode outputting invalid html.
  • Fixed an issue where client side form validation might not work correctly depending on settings.

Version 1.5.10 October 5th 2013

  • Corrected a typo. Said typo caused the valid cookie to expire based on the underage time if the domain wasn’t set for it.

Version 1.5.9 April 25th 2013

  • Improved the Compatibility mode to be more intuitive. It will no longer be visible at all once the user has validated.
  • Added the DuckDuckGo, and Blekko crawler to default user list. Add DuckDuckBot and Blekkobot to your bot check if you don’t wish to reset your settings.
  • Fixed an issue where the domain wouldn’t set correct in very weird circumstances.

Version 1.5.8 February 12nd 2013

  • Added support for the new media upload interface. Changing the logo, and background is now a much more pleasant experience.
  • Added the option of setting the validation period by seconds, hours and days.
  • Added support for sessions. This will allow for validation to last until the user closes their browser. (this is optional)
  • Added the option of outputting the overlay via the header. This fixes the issues people were having when their theme would sometimes not output the footer.
  • Updated the admin interface to have a more natural WordPress feel.
  • Made the overlay theme responsive. Also fixed an issue it was having with certain iOS versions. Images(bar the age gate logo) are hidden while the age gate is visible
  • Rewrote the compatibility mode. It’s now makes use of the jQuery cookies plugin. This means it’s faster, and more reliable.
  • Changed fieldset class to fields, and wrapped each input / option in p with a class titled field. Also changed the disagree link’s class to ao_disagree.
  • Fixed an issue where certain custom post types couldn’t have the age gate added via post meta.

Version 1.5.7 December 13th 2012

  • Fixed WordPress mobile applications from not working when sitewide validation is enabled and the separate theme is active.
  • Fixed a login bug caused by cache plugins.
  • Improved support for WP 3.5.
  • wp_head(), and wp_footer() no longer get loaded by default with the separate theme. They must now set to do so.
  • Removed Other CSS blur for the Overlay theme as it caused far too many issues.
  • Optimised sitewide validation by caching results.
  • Fix minor theme bugs

Version 1.5.6 October 23rd 2012

  • Added an option to add domain to cookie to prevent potential revalidation.
  • Fixed an issue with translations sometimes not working for users using WordPress with multisite enabled.
  • Fixed potential issue for those upgrading to versions > 1.5.5.

Version 1.5.5 October 16th 2012

  • Enabled the use of the post meta on custom post types.
  • Fixed an issue with the cookie not being set for sub domains.

Version 1.5.4 October 9th 2012

  • Added option to enable age gate via custom post meta.
  • Added a compatibility mode for people who use cache plugins.
  • Enhanced Overlay theme for people using the latest version of Google Chrome, and some other recent browsers. (also darkened background)
  • Fixed an issue with the overlay theme.
  • Fixed an issue with Crons(specifically scheduled posts)
  • Fixed an issue with the help tabs in the admin area.

Version 1.5.3 September 22nd 2012

  • Added footer area for themes.
  • Added default language file.
  • Added msnbot to default bot list.
  • Updated front end of settings page.
  • Increased priority of plugin to maximum.
  • Allowed other css to be included with ao short tag, and overlay theme(can be disabled).
  • Made plugin folder independent.
  • Fixed default other CSS issue. (background placement)
  • Fixed ie9 issues with overlay theme.

Version 1.5.2 August 22nd 2012

  • Made the tabs for the settings page more friendly to languages that are rtl.
  • Fixed an issue where some of the text wasn’t translatable.
  • Fixed an issue where the bot detection would sometimes not detect anything other than the google crawler. Also added the FaceBook crawler to the default bots.

Version 1.5.1 August 8th 2012

  • Fixed redirection issues
  • Fixed an issue with the update notification sometimes linking to the wrong area.

Version 1.5 August 6th 2012

  • Improved functions that handle site wide, shortcode, and template validation.
  • Added cache system for form generation.
  • Fixed conflicts with certain plugins.
  • Fixed an issue where cookies would sometimes not get set.
  • Fixed minor bugs

Version 1.4 July 18th 2012

  • Added localisation support.
  • Added update notification feature.
  • Added option to prevent redirection upon successful age validation.
  • Added help panels to the admin area
  • Fixed a few minor bugs

Version 1.3.3 June 20th 2012 (1.3.2 wasn’t released)

  • Changed how, and when JavaScript is loaded for both the front end, and admin area of the plugin.
  • Fixed issues on the design page in admin.
  • Improved backwards compatibility to version 3 of WordPress. Although I seriously recommend you upgrade.

Version 1.3.1 June 15th 2012

  • Fixed a jQuery form validation issue

Version 1.3 June 15th 2012

  • Changed how settings are handled when disabling the plugin. Now they won’t be removed when you disable the plugin. You have to click a link instead. This was done to allow people to upgrade to newer versions without having to make note of all of their settings.
  • Made the links validation text change depending on agreement settings.
  • Fixed php notices if WP_DEBUG is set to true
  • Made the submit buttons text change depending on the agreement setting.
  • Fixed an issue with sitewide validation, and default permalink settings.
  • Changed how forms were generated. This is a start to allow designers to easily change how the themes look without having to deal with php.
  • Fixed an issue where both the age appropriate, and under aged cookies where being set by the site wide validation. This was due to a permalink issue.
  • Added a function to allow designers to hide sections of their templates(via manual edits) based on validation results.

Version 1.2.1 June 12nd 2012

  • Fixed an issue with the ao shortcode stopping other shortcodes from working when verified.

Version 1.2 June 9th 2012

  • Added Farbtastic to admin design page to allow easier colour changes.
  • You’re now able to set all text without having to edit files.
  • Added design settings(bar background) support for the overlay theme.
  • Fixed the [ao] shortcode display bug where the age validation, and contents
    of [ao] would get bumped to the top of the post.
  • Updated documentation html. Added documentation for features added.

Version 1.1.1 June 8th 2012

  • Fixed an issue with the shortcode not setting a default age when no age is specified.

Version 1.1 June 7th 2012

  • Added support for restricting content based on the user supplied age via the [ao] short tag. Syntax being: [ao age=”AGEHERE”]CONTENT HERE[/ao]
  • Added a theme called page for making use of the currently installed WordPress theme. The header, and the footer of the theme are displayed while the sidebar isn’t.
  • Added support for wp_head(), and wp_footer() in the separate theme.
  • Added jQuery form validation
  • Improved Documentation html, and added documentation for features added.

Version 1 June 3rd, 2012.

  • Initial release