Katrangan
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.
Gambar conto
Pemasangan
- Upload the plugin folder to
/wp-content/plugins/ - Activate the plugin through Plugins > Installed Plugins
- Go to Settings > Content Protector and configure your global password
-
Add the shortcode to any post or page
[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.
Mācā ulang
There are no reviews for this plugin.
Contributors & Developers
“RIACO Content Protector” is open source software. The following people have contributed to this plugin.
KontributorTranslate “RIACO Content Protector” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Caathetan Owahan
1.0.0
- Initial release
- Shortcode protection
- Global password
- AJAX unlock
- Cookie remember feature
- Automatic unlock of all instances



