=== JZB Secure Content Block ===
Contributors: Yephy
Tags: block, hidden content, password protect, cache compatible
Requires at least: 5.8
Tested up to: 6.9
Stable tag: 1.0.0
Requires PHP: 7.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A Gutenberg block to securely hide content using passwords. Designed to be fully compatible with page caching mechanisms.

== Description ==

"JZB Secure Content Block" is a solution to protect your premium content, exclusive code snippets, or download links. 

It aims to work efficiently alongside page caching (like Cloudflare, WP Rocket, or LiteSpeed Cache) by loading an empty shell upfront and fetching the actual secure content asynchronously via an AJAX POST request only when the correct password is provided.

### Key Features:
* **Cache Compatible**: Bypasses frontend HTML caching environments.
* **Gutenberg Native**: Uses the modern Parent-Child block architecture. You can drag and drop any block inside the hidden area.
* **Smart Local Memory**: Remembers unlocked state via `localStorage` so your users don't have to re-enter passwords when refreshing.
* **Global & Local Passwords**: Set a global default password to save time, or override it on specific posts.
* **UI Customizer**: Customize colors, borders, and button styles in the settings panel.

== Installation ==

1. Upload the plugin folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Navigate to `Settings -> Secure Content Block` to configure your global password and custom UI colors.
4. Go to any Post or Page, click the `+` icon, and search for the "JZB Secure Block" block.

== Frequently Asked Questions ==

= Does it work with Cloudflare and LiteSpeed Cache? =
Yes. Because the verification uses a live AJAX call to `admin-ajax.php` (which is excluded from caching by default), your frontend can be aggressively cached while the content protection remains dynamic.

= Will search engines index the hidden content? =
No. Since the content is only loaded dynamically after a correct password submission, search engine crawlers will only see the "Please enter password" form. 

== Screenshots ==

1. The Global Settings Panel in WordPress dashboard.
2. How the Parent-Child block looks inside the Gutenberg editor.
3. The frontend password prompt on a live site.

== Changelog ==

= 1.0.0 =
* Initial public release.