Title: RIACO Content Protector
Author: robertoiacono
Published: <strong>December 4, 2025</strong>
Last modified: December 4, 2025

---

Search plugins

![](https://ps.w.org/riaco-content-protector/assets/banner-772x250.png?rev=3411405)

![](https://ps.w.org/riaco-content-protector/assets/icon-256x256.png?rev=3411405)

# RIACO Content Protector

 By [robertoiacono](https://profiles.wordpress.org/prototipo88/)

[Download](https://downloads.wordpress.org/plugin/riaco-content-protector.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/riaco-content-protector/#description)
 * [Reviews](https://wordpress.org/plugins/riaco-content-protector/#reviews)
 *  [Installation](https://wordpress.org/plugins/riaco-content-protector/#installation)
 * [Development](https://wordpress.org/plugins/riaco-content-protector/#developers)

 [Support](https://wordpress.org/support/plugin/riaco-content-protector/)

## Description

**RIACO Content Protector** allows you to protect _any part_ of your WordPress content
using a shortcode.
 Unlike the built-in post password protection, this plugin protects
only what you wrap, _not the whole post_.

Perfect for:

 * Protecting premium blocks of content
 * Protecting guides, downloads, links, or sensitive sections
 * Paywall-style snippets

### Features

 * Protect **only specific content** inside posts/pages
 * Uses a minimal shortcode:
    [riaco_content_protector] Hidden text here [/riaco_content_protector]
 * **Global password** stored in plain text, like WordPress page passwords.
 * AJAX-based form — no page reload
 * Unlocks **all protected sections** on the site after correct password
 * Optional cookie persistence (remember unlocked content for a configurable number
   of days)
 * Secure implementation using nonces, hashed tokens, and transients

**Important:**

 * The global password is stored in plain text, just like WordPress page passwords.
   It can be read by user with ‘manage_options’ ability.
 * If the global password or “Remember Unlocked” duration is changed in settings,
   all existing unlock cookies are invalidated. Users will need to re-enter the 
   new password to access protected content.

### How It Works

Wrap content you want to protect:

    ```
    [riaco_content_protector]
    This text will be hidden until the visitor enters the password.
    [/riaco_content_protector]
    ```

Set the global password under:

**Settings > Content Protector**

Visitors will see a modern, styled form.
 After entering the correct password:

 * The content unlocks immediately
 * All other protected areas unlock automatically
 * An optional cookie can keep everything unlocked for a chosen number of days

### Security

 * Nonces on every request
 * Secure HMAC token for cookie authentication
 * Sanitized shortcode attributes
 * Escaped output
 * No sensitive data stored in cookies
 * Global password stored in plain text, like WordPress page passwords.

### Cookie

We use this cookie to understand if user unlocked the content: `riaco_cp_unlocked_global`.

### Style

You can style the content protector box.

It has this class: `.riaco-cp--container`, so you can add in your `style.css`:

    ```
    .riaco-cp--container {
        background: #f8f9fa;
        padding: 20px;
        border: 1px solid #ddd;
        border-radius: 6px;
    }
    ```

You can replace button classes using:

    ```
    add_filter( 'riaco_cp_button_classes', function( $classes ) {
        return 'button my-custom-button-class';
    });
    ```

Or you can remove button classes:

    ```
    add_filter( 'riaco_cp_button_classes', function( $classes ) {
        // Remove wp-element-button
        return str_replace( 'wp-element-button', '', $classes );
    });
    ```

### License

This plugin is licensed under GPLv2 or later.

## Screenshots

 * [[
 * Frontend password form
 * [[
 * Protected content example
 * [[
 * Settings page with global password option

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/`
 2. Activate the plugin through **Plugins > Installed Plugins**
 3. Go to **Settings > Content Protector** and configure your global password
 4. Add the shortcode to any post or page
 5. [riaco_content_protector] This is hidden. [/riaco_content_protector]

## FAQ

### Can I protect multiple sections on the same page?

Yes. All instances use the same global password and unlock together.

### Does this protect the entire post?

No — only the content wrapped in the shortcode.

### Are passwords hashed in the database?

No, the global password is stored in plain text like WordPress page passwords for
easy admin management.

### Does this work with Gutenberg / block editor?

Yes. It works in both Classic and Block Editor.
 You can insert the shortcode inside
Paragraph block or using Shortcode block.

### What happens when I change the global password?

All previously unlocked content cookies are invalidated. Users must re-enter the
new password.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“RIACO Content Protector” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ robertoiacono ](https://profiles.wordpress.org/prototipo88/)

[Translate “RIACO Content Protector” into your language.](https://translate.wordpress.org/projects/wp-plugins/riaco-content-protector)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/riaco-content-protector/),
check out the [SVN repository](https://plugins.svn.wordpress.org/riaco-content-protector/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/riaco-content-protector/)
by [RSS](https://plugins.trac.wordpress.org/log/riaco-content-protector/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release
 * Shortcode protection
 * Global password
 * AJAX unlock
 * Cookie remember feature
 * Automatic unlock of all instances

## Meta

 *  Version **1.0.0**
 *  Last updated **4 months ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **6.8.5**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [content-protection](https://wordpress.org/plugins/tags/content-protection/)[hide content](https://wordpress.org/plugins/tags/hide-content/)
   [password](https://wordpress.org/plugins/tags/password/)[password protection](https://wordpress.org/plugins/tags/password-protection/)
   [restrict content](https://wordpress.org/plugins/tags/restrict-content/)
 *  [Advanced View](https://wordpress.org/plugins/riaco-content-protector/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/riaco-content-protector/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/riaco-content-protector/reviews/)

## Contributors

 *   [ robertoiacono ](https://profiles.wordpress.org/prototipo88/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/riaco-content-protector/)