{"id":284949,"date":"2026-03-06T23:11:17","date_gmt":"2026-03-06T23:11:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/age-boundary\/"},"modified":"2026-03-14T14:27:19","modified_gmt":"2026-03-14T14:27:19","slug":"mht-entry-confirm","status":"publish","type":"plugin","link":"https:\/\/yor.wordpress.org\/plugins\/mht-entry-confirm\/","author":23457506,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.2","stable_tag":"1.1.2","tested":"6.9.4","requires":"6.0","requires_php":"8.2","requires_plugins":null,"header_name":"MHT Entry Confirm","header_author":"maid-h tech","header_description":"A lightweight and privacy-friendly content visibility control plugin for WordPress.","assets_banners_color":"999999","last_updated":"2026-03-14 14:27:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/mht-entry-confirm\/","header_author_uri":"https:\/\/github.com\/maid-ht\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":327,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"maidht","date":"2026-03-06 23:11:50"},"1.0.1":{"tag":"1.0.1","author":"maidht","date":"2026-03-07 12:46:00"},"1.1.0":{"tag":"1.1.0","author":"maidht","date":"2026-03-11 13:22:02"},"1.1.1":{"tag":"1.1.1","author":"maidht","date":"2026-03-12 05:12:14"},"1.1.2":{"tag":"1.1.2","author":"maidht","date":"2026-03-14 14:27:19"}},"upgrade_notice":{"":"<p>Not available yet.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3476773,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3476773,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.1.1","1.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3477235,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3477235,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3477235,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3477235,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3476773,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3476773,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3476773,"resolution":"7","location":"assets","locale":""}},"screenshots":{"1":"Confirmation modal (clean UI example)","2":"Confirmation modal (alternative styles)","3":"Example with logo customization","4":"Example with checkbox \/ age confirmation","5":"Settings screen-1","6":"Settings screen-2","7":"Settings screen-3"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1912,70877,5616,16114,33945],"plugin_category":[],"plugin_contributors":[257283],"plugin_business_model":[],"class_list":["post-284949","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-age-gate","plugin_tags-age-verification","plugin_tags-content-restriction","plugin_tags-content-warning","plugin_contributors-maidht","plugin_committers-maidht"],"banners":{"banner":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/banner-772x250.png?rev=3476773","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/icon-256x256.png?rev=3476773","icon_2x":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/icon-256x256.png?rev=3476773","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-1.png?rev=3477235","caption":"Confirmation modal (clean UI example)"},{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-2.png?rev=3477235","caption":"Confirmation modal (alternative styles)"},{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-3.png?rev=3477235","caption":"Example with logo customization"},{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-4.png?rev=3477235","caption":"Example with checkbox \/ age confirmation"},{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-5.png?rev=3476773","caption":"Settings screen-1"},{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-6.png?rev=3476773","caption":"Settings screen-2"},{"src":"https:\/\/ps.w.org\/mht-entry-confirm\/assets\/screenshot-7.png?rev=3476773","caption":"Settings screen-3"}],"raw_content":"<!--section=description-->\n<p><strong>MHT Entry Confirm<\/strong> adds a confirmation gate and content restriction modal to your WordPress site. Before visitors can view protected pages, a full-screen confirmation modal appears \u2014 content is revealed only after the visitor explicitly confirms they meet the required conditions.<\/p>\n\n<p>Designed for sites that need simple, privacy-friendly access control without the overhead of complex membership plugins.<\/p>\n\n<p><strong>Common use cases:<\/strong><\/p>\n\n<p>\u2013 Age verification for adult content, alcohol, tobacco, or gambling-related sites\n\u2013 Content warnings for mature themes, violence, or graphic media\n\u2013 Regional or legal access restrictions (e.g. country-specific compliance)\n\u2013 Age-gated product pages for games, movies, or media with age ratings<\/p>\n\n<p><strong>Why choose MHT Entry Confirm?<\/strong><\/p>\n\n<p>\u2013 No personal data collected \u2014 fully GDPR-friendly\n\u2013 No tracking, no ads, no upsells\n\u2013 Free and open-source (GPL-2.0)\n\u2013 Lightweight \u2014 no impact on page speed<\/p>\n\n<h3>Frontend-First Architecture<\/h3>\n\n<p><strong>MHT Entry Confirm is designed with a frontend-first architecture.<\/strong><\/p>\n\n<p>The confirmation gate runs entirely in the browser using JavaScript and cookies.\nAfter the page is loaded, the modal logic works independently from the WordPress backend.<\/p>\n\n<p>\u2013 No AJAX requests to the server\n\u2013 No PHP processing during confirmation\n\u2013 No database interaction for visitor validation<\/p>\n\n<p>All confirmation logic runs on the client side.<\/p>\n\n<h3>Features<\/h3>\n\n<p>\u2013 <strong>Blocking confirmation modal<\/strong>\n  Displays a full-page modal before protected content is shown.<\/p>\n\n<p>\u2013 <strong>Cookie-based access memory<\/strong>\n  Remembers confirmed visitors for a configurable number of days, or for the current browser session only.<\/p>\n\n<p>\u2013 <strong>Customizable appearance<\/strong>\n  Adjust logo image, title color, modal title, description text, button color, backdrop color and opacity to match your site design.<\/p>\n\n<p>\u2013 <strong>Safe redirect for restricted visitors<\/strong>\n  Redirect visitors who do not confirm to a specified external URL.<\/p>\n\n<p>\u2013 <strong>Flexible button settings<\/strong>\n  Customize confirmation and decline button labels, and optionally swap their positions.<\/p>\n\n<p>\u2013 <strong>Exclusion rules<\/strong>\n  Disable the confirmation modal on specific posts, categories, or tags by ID.<\/p>\n\n<p>\u2013 <strong>Cookie flag control<\/strong>\n  Change the cookie flag value to invalidate existing cookies and force re-confirmation for all visitors.<\/p>\n\n<p>\u2013 <strong>Test mode<\/strong>\n  Preview and adjust the modal without saving cookies \u2014 useful for development and design tuning.<\/p>\n\n<h3>For Developers<\/h3>\n\n<p>MHT Entry Confirm dispatches a custom JavaScript event after a visitor successfully passes the confirmation step, allowing you to trigger additional logic.<\/p>\n\n<p>The event name is stable within the same major version.<\/p>\n\n<pre><code>&lt;script&gt;\n    document.addEventListener(\"mhtentryconfirm_passed\", function() {\n        \/\/ Custom logic after confirmation is passed\n    });\n&lt;\/script&gt;\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20perform%20real%20identity%20or%20age%20verification%3F\"><h3>Does this plugin perform real identity or age verification?<\/h3><\/dt>\n<dd><p>No. MHT Entry Confirm is a self-declaration confirmation gate \u2014 it relies on visitor self-confirmation. It does not perform identity verification and does not collect personal information. This is consistent with how most content gates work on the web.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20gdpr%20compliant%3F\"><h3>Is this plugin GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses a strictly functional cookie only to remember confirmation status. No personal data is collected, stored, or transmitted. No third-party services are involved.<\/p><\/dd>\n<dt id=\"will%20the%20confirmation%20modal%20appear%20on%20every%20page%3F\"><h3>Will the confirmation modal appear on every page?<\/h3><\/dt>\n<dd><p>Yes, by default. You can exclude specific posts, categories, or tags from the confirmation requirement via the plugin settings.<\/p><\/dd>\n<dt id=\"how%20long%20is%20the%20confirmation%20stored%3F\"><h3>How long is the confirmation stored?<\/h3><\/dt>\n<dd><p>By default, the confirmation cookie is stored for 365 days. You can change this value in the settings. If left empty, confirmation is stored only for the current browser session.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20look%20of%20the%20confirmation%20modal%3F\"><h3>Can I customize the look of the confirmation modal?<\/h3><\/dt>\n<dd><p>Yes. You can customize the logo, title, description text, button labels, button color, backdrop color, and backdrop opacity \u2014 all from the settings page.<\/p><\/dd>\n<dt id=\"how%20can%20i%20force%20all%20visitors%20to%20confirm%20again%3F\"><h3>How can I force all visitors to confirm again?<\/h3><\/dt>\n<dd><p>Change the <strong>Cookie Flag Value<\/strong> in the settings. This invalidates all existing cookies and forces re-confirmation for every visitor.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Does this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. MHT Entry Confirm is intentionally lightweight and has no impact on page load performance.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20as%20a%20content%20warning%20plugin%3F\"><h3>Can I use this as a content warning plugin?<\/h3><\/dt>\n<dd><p>Yes. While age verification is a common use case, the plugin works for any scenario where you need visitors to confirm they understand or accept conditions before viewing content.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Add <code>fetchpriority=\"high\"<\/code> attribute to Logo Image.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix layout.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Add extra checks (agree checkbox, age check).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<p>\u2013 Fix setting screen styles.\n- Add language template (pot).<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>\u2013 Initial release.<\/p>","raw_excerpt":"Lightweight WordPress plugin to restrict content behind a confirmation modal \u2014 no tracking, no ads, privacy-friendly.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/284949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=284949"}],"author":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/maidht"}],"wp:attachment":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=284949"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=284949"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=284949"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=284949"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=284949"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=284949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}