=== MHT Entry Confirm ===
Contributors: maidht
Link: https://github.com/maid-ht/
Plugin URI: https://wordpress.org/plugins/mht-entry-confirm/
Tags: age verification, content restriction, age gate, access control, content warning
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.2
Stable tag: 1.1.2
Text Domain: mht-entry-confirm
Domain Path: /languages
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lightweight WordPress plugin to restrict content behind a confirmation modal — no tracking, no ads, privacy-friendly.

== Description ==

**MHT Entry Confirm** adds a confirmation gate and content restriction modal to your WordPress site. Before visitors can view protected pages, a full-screen confirmation modal appears — content is revealed only after the visitor explicitly confirms they meet the required conditions.

Designed for sites that need simple, privacy-friendly access control without the overhead of complex membership plugins.

**Common use cases:**

– Age verification for adult content, alcohol, tobacco, or gambling-related sites
– Content warnings for mature themes, violence, or graphic media
– Regional or legal access restrictions (e.g. country-specific compliance)
– Age-gated product pages for games, movies, or media with age ratings

**Why choose MHT Entry Confirm?**

– No personal data collected — fully GDPR-friendly
– No tracking, no ads, no upsells
– Free and open-source (GPL-2.0)
– Lightweight — no impact on page speed

== Frontend-First Architecture ==

**MHT Entry Confirm is designed with a frontend-first architecture.**

The confirmation gate runs entirely in the browser using JavaScript and cookies.
After the page is loaded, the modal logic works independently from the WordPress backend.

– No AJAX requests to the server
– No PHP processing during confirmation
– No database interaction for visitor validation

All confirmation logic runs on the client side.

== Features ==

– **Blocking confirmation modal**
  Displays a full-page modal before protected content is shown.

– **Cookie-based access memory**
  Remembers confirmed visitors for a configurable number of days, or for the current browser session only.

– **Customizable appearance**
  Adjust logo image, title color, modal title, description text, button color, backdrop color and opacity to match your site design.

– **Safe redirect for restricted visitors**
  Redirect visitors who do not confirm to a specified external URL.

– **Flexible button settings**
  Customize confirmation and decline button labels, and optionally swap their positions.

– **Exclusion rules**
  Disable the confirmation modal on specific posts, categories, or tags by ID.

– **Cookie flag control**
  Change the cookie flag value to invalidate existing cookies and force re-confirmation for all visitors.

– **Test mode**
  Preview and adjust the modal without saving cookies — useful for development and design tuning.

== For Developers ==

MHT Entry Confirm dispatches a custom JavaScript event after a visitor successfully passes the confirmation step, allowing you to trigger additional logic.

The event name is stable within the same major version.

<code>
<script>
	document.addEventListener("mhtentryconfirm_passed", function() {
		// Custom logic after confirmation is passed
	});
</script>
</code>

== Frequently Asked Questions ==

= Does this plugin perform real identity or age verification? =

No. MHT Entry Confirm is a self-declaration confirmation gate — 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.

= Is this plugin GDPR compliant? =

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.

= Will the confirmation modal appear on every page? =

Yes, by default. You can exclude specific posts, categories, or tags from the confirmation requirement via the plugin settings.

= How long is the confirmation stored? =

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.

= Can I customize the look of the confirmation modal? =

Yes. You can customize the logo, title, description text, button labels, button color, backdrop color, and backdrop opacity — all from the settings page.

= How can I force all visitors to confirm again? =

Change the **Cookie Flag Value** in the settings. This invalidates all existing cookies and forces re-confirmation for every visitor.

= Does this plugin slow down my site? =

No. MHT Entry Confirm is intentionally lightweight and has no impact on page load performance.

= Can I use this as a content warning plugin? =

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.

== 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

== Changelog ==

= 1.1.2 =
- Add `fetchpriority="high"` attribute to Logo Image.

= 1.1.1 =
- Fix layout.

= 1.1.0 =
- Add extra checks (agree checkbox, age check).

= 1.0.1 =
– Fix setting screen styles.
- Add language template (pot).

= 1.0.0 =
– Initial release.

== Upgrade Notice ==

Not available yet.
