| 1 |
=== Content Control - The Ultimate Content Restriction Solution! Restrict Content, Create Conditional Blocks & More === |
| 2 |
Contributors: codeatlantic, danieliser |
| 3 |
Plugin URI: https://code-atlantic.com/?utm_campaign=upgrade-to-pro&utm_source=plugins-page&utm_medium=plugin-ui&utm_content=action-links-upgrade-text |
| 4 |
Author URI: https://contentcontrolplugin.com/?utm_campaign=plugin-info&utm_source=readme-header&utm_medium=plugin-ui&utm_content=author-uri |
| 5 |
Donate link: https://code-atlantic.com/donate/?utm_campaign=donations&utm_source=readme-header&utm_medium=plugin-ui&utm_content=donate-link |
| 6 |
Tags: membership, access control, members only, content restriction, maintenance mode |
| 7 |
Requires at least: 6.2 |
| 8 |
Tested up to: 7.1 |
| 9 |
Stable tag: 2.7.3 |
| 10 |
Requires PHP: 7.4 |
| 11 |
License: GPL-2.0-or-later |
| 12 |
|
| 13 |
Restrict content based on login status, user roles, device type & more. Monetize your content with a paywall or members-only content. |
| 14 |
|
| 15 |
== Description == |
| 16 |
|
| 17 |
Content Control is a transformative plugin, allowing you to fine-tune every aspect of your WordPress website's content. Decide who gets to see what, where, and when - be it pages, posts, widgets, or individual block visibility using our handy shortcode. Your content, your rules, executed perfectly! |
| 18 |
|
| 19 |
Content Control is intuitive and powerful, designed for all users—whether logged in, holding specific roles, or even guests. Need top-tier content restriction or a dependable access manager for your site? Look no further. We've expanded our controls to include Gutenberg and Full Site Editor, giving you unmatched command. |
| 20 |
|
| 21 |
= Key Features = |
| 22 |
|
| 23 |
Discover what Content Control brings to your table: |
| 24 |
|
| 25 |
- Full control over your site's content, restrict user access with ease!. |
| 26 |
- Create a **Paid Membership** sites using your favorite or existing ecommerce plugins. |
| 27 |
- Set up a seamless paywall for your content, providing teasers for users and prompting them to purchase access. |
| 28 |
- Per block controls for Gutenberg and Full Site Editor, including user roles, device type, and more. |
| 29 |
- Responsive block controls with customizable breakpoints. |
| 30 |
- Control block visibility by user status, roles, device type & more. |
| 31 |
- Restrict access to pages, posts, widgets, and individual blocks based on user status, roles, device type & more. |
| 32 |
- Offer membership tools for crafting membership access and members-only content. |
| 33 |
- Provide responsive block designs that adapt to varying device sizes. |
| 34 |
- Lockdown content selectively for improved user experiences. |
| 35 |
- Implement role-based redirections to guide users effectively. |
| 36 |
- Unlock the power of subscription content and monetization strategies. |
| 37 |
- Safeguard specific categories, tags, custom post types, and custom taxonomies. |
| 38 |
- Manage access to [media attachment pages](https://www.hongkiat.com/blog/wordpress-attachment-pages/) for logged in/out users or specific user roles. |
| 39 |
- Display a custom message to users who do not have permission to view the content. |
| 40 |
- Display specific content on a page or post to logged in users only, specific user roles, or logged out users. |
| 41 |
- Redirect users without access permission to a login page, website homepage, or a custom URL. |
| 42 |
- Highlight subscriber-only content for premium users. |
| 43 |
- Use the `[content_control]` shortcode to protect content inline and cater to subscriber preferences. |
| 44 |
- Control widget visibility by selecting the user type that can view each widget. |
| 45 |
- Conditionally show coming soon or maintenance mode pages based on various rules. |
| 46 |
- Restrict access to your site's REST API endpoints. |
| 47 |
|
| 48 |
[Content Control Documentation](https://contentcontrolplugin.com/docs/?utm_campaign=plugin-info&utm_source=readme-description&utm_medium=wordpress&utm_content=documentation-link) |
| 49 |
|
| 50 |
= Pro Features = |
| 51 |
|
| 52 |
Content Control Pro, with advanced features like: |
| 53 |
|
| 54 |
- Content Teasers for Paywalls, giving your users a sneak peek, leaving them wanting more. |
| 55 |
- Optimize your WooCommerce & Easy Digital Downloads (EDD) & Paid Memberships Pro experiences with advanced rules. |
| 56 |
- Schedule blocks, controlling content visibility timings using customizable scheduling rules. |
| 57 |
- Dive deeper with advanced block rules and a boolean editor. |
| 58 |
- Customize login, registration & recovery page urls. Custom login urls give a more personalized user experience. |
| 59 |
|
| 60 |
[Upgrade to Content Control Pro](https://contentcontrolplugin.com/pricing/?utm_campaign=plugin-info&utm_source=readme-description&utm_medium=wordpress&utm_content=upgrade-link) |
| 61 |
|
| 62 |
**Note**: Content Control handles media access via content on media attachment pages but won't restrict direct server-level access to media files. |
| 63 |
|
| 64 |
= Passionately Crafted by Code Atlantic = |
| 65 |
|
| 66 |
At [Code Atlantic][codeatlantic], we're passionate about crafting tools that empower your digital journey. Content Control is a testament to our commitment to quality. |
| 67 |
|
| 68 |
Dive into some of our renowned plugins: |
| 69 |
|
| 70 |
- **[Popup Maker][popupmaker]** - The #1 Popup & Marketing Plugin for WordPress |
| 71 |
- **[User Menus][usermenus]** - Innovatively Show, Hide & Customize Menu Items |
| 72 |
|
| 73 |
[codeatlantic]: https://code-atlantic.com "Code Atlantic - High Quality WordPress Plugins" |
| 74 |
[popupmaker]: https://wppopupmaker.com "#1 Popup & Marketing Plugin for WordPress" |
| 75 |
[usermenus]: https://wordpress.org/plugins/user-menus/ "Show, Hide & Customize Menu Items For Different Users" |
| 76 |
|
| 77 |
== Installation == |
| 78 |
|
| 79 |
- Install Content Control either via the WordPress.org plugin repository or by uploading the files to your server. |
| 80 |
- Activate Content Control. |
| 81 |
|
| 82 |
If you need help getting started with Content Control please see [FAQs][faq page] which explains how to use the plugin. |
| 83 |
|
| 84 |
[faq page]: https://wordpress.org/plugins/content-control/faq/ "Content Control FAQ" |
| 85 |
|
| 86 |
== Frequently Asked Questions == |
| 87 |
|
| 88 |
= Can I offer paid memberships with Content Control? = |
| 89 |
|
| 90 |
Currently this is available in our Pro version when coupled with your favorite ecommerce plugins such as WooCommerce, Easy Digital Downloads & Paid Memberships Pro. |
| 91 |
|
| 92 |
= Where can I get support? = |
| 93 |
|
| 94 |
If you get stuck, you can ask for help in the [Content Control Plugin Forum](http://wordpress.org/support/plugin/content-control). |
| 95 |
|
| 96 |
= Where can I report bugs or contribute to the project? = |
| 97 |
|
| 98 |
Bugs can be reported either in our support forum or we are happy to accept PRs on the [Content Control GitHub repo](https://github.com/code-atlantic/content-control/issues). |
| 99 |
|
| 100 |
== Screenshots == |
| 101 |
|
| 102 |
1. Restrict access to individual blocks. |
| 103 |
2. Create unlimited restriction sets. |
| 104 |
3. Choose who can see the restricted content. |
| 105 |
4. Display a message in place of restricted content. |
| 106 |
5. Redirect users to log in or to another page if they access restricted content. |
| 107 |
6. Choose any content you can think of to protect. |
| 108 |
7. Use shortcodes to protect content inline. |
| 109 |
8. Restrict widgets as well. |
| 110 |
|
| 111 |
== Changelog == |
| 112 |
|
| 113 |
= v2.7.3 - 09/01/2026 = |
| 114 |
|
| 115 |
* Fix: Direct Content Control Pro customers to the appropriate product review form. |
| 116 |
|
| 117 |
= v2.7.2 - 08/26/2026 = |
| 118 |
|
| 119 |
* Improvement: Refined request-scoped upgrade stream initialization for broader hosting compatibility. |
| 120 |
|
| 121 |
= v2.7.1 - 08/20/2026 = |
| 122 |
|
| 123 |
* Security: Hardened administrative REST endpoints and request validation. |
| 124 |
* Fix: Corrected handling of encoded query parameters in restriction return URLs. |
| 125 |
* Compatibility: Improved BetterDocs searches and filtered block-control styles. |
| 126 |
|
| 127 |
= v2.7.0 - 08/20/2026 = |
| 128 |
|
| 129 |
* Feature: Added child and ancestor conditions for hierarchical taxonomies. |
| 130 |
* Feature: Added an inline option to the `[content_control]` shortcode. |
| 131 |
* Fix: Prevented a PHP warning on the Plugins screen when update metadata omits the plugin slug. |
| 132 |
|
| 133 |
= v2.6.6 - 08/13/2026 = |
| 134 |
|
| 135 |
* Security: Restricted REST API access to global plugin settings to authorized administrators. |
| 136 |
|
| 137 |
= v2.6.5 - 05/27/2025 = |
| 138 |
|
| 139 |
* Tweak: Passed the original filtered content to the restricted message filter. |
| 140 |
|
| 141 |
= v2.6.4 - 05/09/2025 = |
| 142 |
|
| 143 |
* Fix: Revert change in previous update that broke rendering of some shortcodes within `[content_control]` shortcode inner contents. |
| 144 |
|
| 145 |
= v2.6.3 - 05/08/2025 = |
| 146 |
|
| 147 |
* Fix: Excerpt rendering when custom message wasn't set. |
| 148 |
|
| 149 |
= v2.6.2 - 04/22/2025 = |
| 150 |
|
| 151 |
* Security: Escaped `[content_control]` `message` attribute. |
| 152 |
* Fix: Misc JS bugs in admin. |
| 153 |
* Developer: Added new `content_control/pre_restrict_content` & `content_control/pre_restrict_excerpt` filters to allow overloading/short curcuiting the default restriction application. |
| 154 |
|
| 155 |
= v2.6.1 - 03/15/2025 = |
| 156 |
|
| 157 |
* Improvement: Only fetch titles & ids when loading posts/taxonomy for the Restriction Editor. Reducing request overhead. |
| 158 |
* Improvement: Ensure taxonomies are also removed from search appropriately. |
| 159 |
* Improvement: Reduce memory footprint of overloaded object handling. |
| 160 |
* Tweak: Adjust rest intent when using search endpoint or arg for better detection. |
| 161 |
* Fix: Prevent undefined post type or taxonomy `public` arg from generating warning notices. |
| 162 |
* Fix: Prvent warnings due to translations being loaded too early. |
| 163 |
|
| 164 |
= v2.6.0 - 03/11/2025 = |
| 165 |
|
| 166 |
* Feature: Added new setting to control restricted content visibility in search results |
| 167 |
* Site owners can now choose to completely hide restricted content from search results |
| 168 |
* Includes detailed security guidance when enabling search visibility |
| 169 |
* Helps prevent unintended exposure of sensitive information through search |
| 170 |
* Resolves concerns addressed in CVE-2024-11153 by default, now requiring explicit admin consent to show items in search results. |
| 171 |
* Performance: Improved asset minification. |
| 172 |
|
| 173 |
= v2.5.0 - Restriction Check Improvements - 08/18/2024 = |
| 174 |
|
| 175 |
* Improvement: Change rule processing to be more explicit for each context/rule type, improving performance & reliability of how rules are handled in some edge cases. |
| 176 |
* Improvement: Update `content_control_known_blockTypes` option to not be autoloaded. |
| 177 |
* Improvement: Update QueryMonitor output to differentiate between terms & posts. |
| 178 |
* Fix: Error due to invalid return value variable name. |
| 179 |
|
| 180 |
= v2.4.0 - Performance Matters - 06/21/2024 = |
| 181 |
|
| 182 |
* Improvement: Optimized the order we determine if we can skip checking restrictions for any givem content type. Thanks to PolyLang team for the suggestion. |
| 183 |
* Improvement: Better coverage for taxonomy query detection & filtering. |
| 184 |
* Improvement: Added inertnal function caches to drastically reduce overhead of checking restrictions. This may result in a significant performance increase for large sites or sites with many restrictions. |
| 185 |
* Improvement: Only generate list of page template types for rules when in the admin, saving potential DB query. |
| 186 |
* Tweak: Explicitly bail on rule checks for unknown Rest API endpoints as we don't currently fully support them. Filter below added to allow modifying this behavior. |
| 187 |
* Tweak: Remove upsell message when pro version is active. |
| 188 |
* Fix: Bug with restricting logged in users from content when the user had post_edit permissions for the post. |
| 189 |
* Developer: Added new internal globals variable handler instead of using `global $vars` directly. Set of helper functions available to get/set/push/pop global variables. |
| 190 |
* Developer: Made controllers more efficient by conditionally loading them only when needed. |
| 191 |
* Developer: Added new filter `content_control/determine_uknonwn_rest_api_intent` to allow 3rd party plugins to modify the REST API intent used in rule checks specifically for unknown intents. |
| 192 |
* Developer: Added new filter `content_control/request_is_excluded_rest_endpoint` to allow 3rd party plugins to exclude/include custom REST API endpoints from restriction checks. |
| 193 |
* Developer: Added new filter `'content_control/pre_query_can_be_ignored` allowing early return for known ignorable queries. |
| 194 |
* Developer: Added second paramter to the`content_control/get_rest_api_intent` filter pass the `$rest_route`. |
| 195 |
|
| 196 |
= v2.3.0 - 05/23/2024 = |
| 197 |
|
| 198 |
* Improvement: Added more full coverage of all query types for for restriction handling. This helps catch more custom/3rd party AJAX search queries that were not being filtered. |
| 199 |
* Improvement: Added better handling for excluding queries and admin views from restrictions. |
| 200 |
* Improvement: Added filters for easier compatibility fixes with 3rd party plugins. |
| 201 |
* Improvement: Added support/fixes for BetterDocs custom AJAX searching. |
| 202 |
* Improvement: Added support/fixes for Blocksy theme custom AJAX searching. |
| 203 |
* Fix: Bug where $post->ID was used without checking if $post was set. |
| 204 |
* Developer: Added new filter `content_control/get_rest_api_intent` to allow 3rd party plugins to modify the REST API intent used in rule checks. |
| 205 |
|
| 206 |
= v2.2.8 - 05/07/2024 = |
| 207 |
|
| 208 |
- Fix: Issue causing some non-admin AJAX requests to the REST API from being run through protection checks. |
| 209 |
- Fix: Error when using page template rules & global $post is not set properly. |
| 210 |
|
| 211 |
= v2.2.7 - 03/20/2024 = |
| 212 |
|
| 213 |
- Improvement: Fix plugin preview blueprint file location. |
| 214 |
|
| 215 |
= v2.2.6 - 03/20/2024 = |
| 216 |
|
| 217 |
- Improvement: Add plugin preview blueprint support. |
| 218 |
|
| 219 |
= v2.2.5 - 03/20/2024 = |
| 220 |
|
| 221 |
- Improvement: Logic for protection being disabled was improved to be more efficient. |
| 222 |
- Fix: Bug with The Events Calendar showing blank screen when using Redirect restriction. |
| 223 |
- Fix: Bug where redirect based restrictions failed on The Events Calendar pages. |
| 224 |
- Fix: Typo in order of widget REST API check conditionals. |
| 225 |
|
| 226 |
= v2.2.4 - 03/20/2024 = |
| 227 |
|
| 228 |
- Fix: Enforced strict versioning in autoload build tool that recently auto updated causing the autoloader to suddenly leak unprefixed classes. This was causing random issues in combination with [incompatible autoloading by other plugins](https://pressidium.com/blog/wordpress-plugin-conflicts-how-to-prevent-composer-dependency-hell/). |
| 229 |
|
| 230 |
= v2.2.3 - 03/19/2024 = |
| 231 |
|
| 232 |
- Fix: Recurssion error with taxonomy queries due to calling setup_post during get_terms query. WooCommerce then setup global $product, which called another taxonomy query, and so on. |
| 233 |
- Fix: Bug when modified WP_Term_Query->terms arrays of ints were passed instead of epxected term objects. |
| 234 |
|
| 235 |
= v2.2.2 - 03/19/2024 = |
| 236 |
|
| 237 |
- Fix: Bug with new taxonomy query filter. For now this is limited to the REST API only. |
| 238 |
|
| 239 |
= v2.2.1 - 03/18/2024 = |
| 240 |
|
| 241 |
- Fix: Bug where the plugin had errors on taxonomy pages or queries. |
| 242 |
- Fix: Error when Term query taxonomy arg was not an array. |
| 243 |
|
| 244 |
= v2.2.0 - 03/17/2024 = |
| 245 |
|
| 246 |
- Feature: Add support for [restricing content in the REST API](https://contentcontrolplugin.com/features/rest-api/). |
| 247 |
- Feature: Add support for terms in WP term queries. |
| 248 |
- Fix: Nav Menu Link user rule not working properly. |
| 249 |
- Fix: Prevent "Required Upgrade" notices on new installs. |
| 250 |
- Tweak: Only show "Required Upgrade" notices to admins with plugin management permissions. |
| 251 |
- Dev:: Added new field type `userselect` for choosing users with search. |
| 252 |
|
| 253 |
= v2.1.0 - 12/08/2023 = |
| 254 |
|
| 255 |
**NOTE**: Plugin now requires PHP 7.4+ & WP 6.2+. The plugin likely still works on older versions, but now only officialy support these versions and up. |
| 256 |
|
| 257 |
- Improvement: Preloaded plugin settings on admin pages to decrease delay before settings are available to JS. This should help settings not showing up in the editor when first loading the page. |
| 258 |
- Tweak: Changed `'content_control/get_block_control_classes'` filter to include the $controls found in the block. |
| 259 |
- Tweak: Various style improvements to admin pages for consistency. |
| 260 |
- Fix: Typo in fetching of taxonomy labels for rule generation. This could have led to rule search results not being shown with proper labels (or empty labels). |
| 261 |
- Fix: Block scanner running for all users, not just admins, triggered AJAX events that were denied every time author entered block editor. |
| 262 |
- Fix: Styling issues with WP 6.4 checkbox changes. |
| 263 |
- Fix: Bug when filtering restrictions in the list view and no results remained, causing the filters to not work properly witoout a page refresh. |
| 264 |
- Developer: Core plugin class now is extendible to allow addons to get full access to plugin internals. |
| 265 |
- Developer: Added useFields api which will be used in future versions of the plugin to allow 3rd party plugins to add their own fields to the restriction editor. |
| 266 |
- Developer: Added multiple new components for field organization and layout: `FieldRow`, `FieldPanel`. |
| 267 |
- Developer: Added new `'content-control.data.registry'` hook in JavaScript to allow addons to register their own data stores for use in the editor & settings pages. |
| 268 |
- Developer: Added new `'content_control/restriction/bypass_user_requirements'` PHP filter to allow addons to bypass user requirements for more specific restrictions. |
| 269 |
|
| 270 |
|
| 271 |
= v2.0.12 - 10/26/2023 = |
| 272 |
|
| 273 |
- Fix: Prevent extra 301 redirect due to missing trailing slash on some URLs. |
| 274 |
- Fix: Issue with Custom Message replacement not always working on pages built with Elementor. |
| 275 |
|
| 276 |
= v2.0.11 - 10/04/2023 = |
| 277 |
|
| 278 |
- Improvement: Query Monitor integration to show which restrictions are active on a page. |
| 279 |
- Shows global settings that may be affecting the page. |
| 280 |
- Shows which restrictions are active on the page. |
| 281 |
- Shows which posts are being filtered out of queries and by which restriction. |
| 282 |
- Tweak: Ensure upgrade stream doesn't send headers if they were already sent. |
| 283 |
- Tweak: Make second arg on get_the_excerpt filter optional to prevent errors with some plugins. |
| 284 |
- Fix: Bug when using `content_control/check_all_restrictions` filter that caused rules to not compare properly. |
| 285 |
|
| 286 |
= v2.0.10 - 10/01/2023 = |
| 287 |
|
| 288 |
- Improvement: If no v1 global restrictions existed, skip the migration step entirely. |
| 289 |
- Improvement: Default to late init of post query filtering until after plugins_loaded should be finished. This should prevent help prevent random errors due to restrictions being checked before plugins have had a chance to register their post types, and thus restrictions won't properly match those post type rules. |
| 290 |
- Improvement: Add check to prevent restriction checks for **WP CLI** requests. |
| 291 |
- Improvement: Add notice to indicate is when waiting for post/page search results in the restriction editor fields. |
| 292 |
- Tweak: Fix issue in build that caused autoloader to not fully use optimized classmap, should result in improved performance. |
| 293 |
- Fix: Ensure `$wp_rewrite` is available before calling `is_rest()` -> `get_rest_url()`. This should prevent errors when using the plugin with **WP CLI** and when plugins make `WP_Query` calls during `plugins_loaded`. |
| 294 |
- Fix: Don't attempt to initialize side query filtering until after_theme_setup hook. This should prevent errors when plugins make `WP_Query` calls during `plugins_loaded`, and allow further delaying initialization if needed from themes `functions.php` file. |
| 295 |
- Fix: Backward compatibility issue with WP versions <6.2 that made settings page not render. |
| 296 |
- Fix: Bug where Block Controls didn't work on WooCommerce pages. This was filtering `pre_render_block` but not returning a value. Now we run our check after theirs to ensure that bug has no effect on our plugin. [Report](https://github.com/woocommerce/woocommerce-blocks/issues/11077) |
| 297 |
|
| 298 |
= v2.0.9 - 09/24/2023 = |
| 299 |
|
| 300 |
- Improvement: Better handling of restriction titles & content. Admins with priv can insert any content into the restriction messages. |
| 301 |
- Improvement: Added new filter `content_control/query_filter_init_hook` to allow delaying query filtering for compatibility with plugins that make custom queries before `template_redirect` action. |
| 302 |
|
| 303 |
``` |
| 304 |
add_filter( 'content_control/query_filter_init_hook', function () { |
| 305 |
return 'init'; // Try setup_theme, after_theme_setup, init or wp_loaded |
| 306 |
} ); |
| 307 |
``` |
| 308 |
|
| 309 |
- Tweak: Ensure our restriction checks work within a nested post loop. |
| 310 |
- Tweak: Change how restriction title & descriptions were sent/received over Rest API. |
| 311 |
- Fix: Bug that caused some shortcodes to not render properly. |
| 312 |
- Fix: Bug where override message wasn't used. |
| 313 |
- Fix: Bug where Elementor Post loop would render incorrectly when using ACF fields in the loop template. |
| 314 |
|
| 315 |
= v2.0.8 - 09/22/2023 = |
| 316 |
|
| 317 |
- Tweak: Ignore many Elementor queries from being restricted. |
| 318 |
- Fix: Error when required upgrade was marked as complete. |
| 319 |
- Fix: Bug that caused secondary queries to be handled like main queries. |
| 320 |
|
| 321 |
= v2.0.7 - 09/21/2023 = |
| 322 |
|
| 323 |
- Tweak: Only log each unique plugin debug notice once to prevent filling log files quickly. |
| 324 |
- Tweak: Replace usage of `wp_upload_dir` with `wp_get_upload_dir` which is more performant. |
| 325 |
- Fix: Error in upgrades when no data is found to migrate. |
| 326 |
- Fix: Error when function is called early & global $wp_query is not yet available. |
| 327 |
- Fix: Conditional check that could always return false. |
| 328 |
- Developer: Implemented PHP Static Analysis to catch more bugs before they happen. Currently clean on lvl 6. |
| 329 |
|
| 330 |
= v2.0.6 - 09/19/2023 = |
| 331 |
|
| 332 |
- Improvement: Added data backup step to upgrade process that stores json export in the media library. |
| 333 |
- Improvement: Better error handling in the data upgrade process. |
| 334 |
- Fix: Fix bug in data upgrade process that caused it to never finish. |
| 335 |
- Fix: Possible error when no restriction match found in some custom` queries. |
| 336 |
|
| 337 |
= v2.0.5 - 09/18/2023 = |
| 338 |
|
| 339 |
- Fix: Fix errors on some sites with custom conditions due to registering all rules too early. |
| 340 |
|
| 341 |
= v2.0.4 - 09/18/2023 = |
| 342 |
|
| 343 |
- Fix: Error when WP Query vars include anonymous function closures. |
| 344 |
|
| 345 |
= v2.0.3 - 09/18/2023 = |
| 346 |
|
| 347 |
- Fix: Log errors instead of throwing exceptions to prevent uncaught exceptions turning into fatal errors. |
| 348 |
|
| 349 |
= v2.0.2 - 09/18/2023 = |
| 350 |
|
| 351 |
- Fix: Fatal error from error logger on systems without write access. |
| 352 |
|
| 353 |
= v2.0.1 - 09/17/2023 = |
| 354 |
|
| 355 |
- Fix: Fatal error from unregistered or unknown rule types from 3rd party plugins/themes or custom code. Now they are logged in plugin settings page. |
| 356 |
|
| 357 |
= v2.0.0 - 09/17/2023 = |
| 358 |
|
| 359 |
- Feature: Restrict individual blocks in the Gutenberg editor. |
| 360 |
- Feature: Restrict individual blocks in the Full Site Editor. |
| 361 |
- Feature: Use a custom page template for restricted content. |
| 362 |
- Feature: Restrict blocks by device type with customizable breakpoints. |
| 363 |
- Feature: Restrict blocks by user status & role. |
| 364 |
- Feature: Global restrictions now offer more control over how restricted content is handled. |
| 365 |
- Choose to redirect or replace content with a custom page. |
| 366 |
- Filter or hide posts in archives or custom loops. |
| 367 |
- Secondary controls for posts if found in an archive. |
| 368 |
- Improvement: Match or exclude specific roles. |
| 369 |
- Improvement: Updated interface with intuitive and responsive controls. |
| 370 |
- Improvement: Boolean editor improvements. |
| 371 |
- Improvement: Control who can modify plugin settings. |
| 372 |
- Improvement: Upgraded tooling & Code quality improvements. |
| 373 |
|
| 374 |
= v1.1.10 - 12/28/2022 = |
| 375 |
|
| 376 |
- Security: Fix unescaped output for CSS classname in the [contentcontrol] shortcode allowing users with the ability to edit posts to inject code into the page. |
| 377 |
|
| 378 |
= v1.1.9 - 09/30/2021 = |
| 379 |
|
| 380 |
- Fix: Error when using Gutenberg Preview. |
| 381 |
|
| 382 |
= v1.1.8 - 07/17/2021 = |
| 383 |
|
| 384 |
- Fix: Error when Elementor instance preview proptery was null. |
| 385 |
|
| 386 |
= v1.1.7 - 07/17/2021 = |
| 387 |
|
| 388 |
- Fix: Prevent warning if widget settings don't exist in options table. |
| 389 |
- Fix: Arbitrary limit of 10 on current items listed in Restriction Editor due to WP query default args. |
| 390 |
- Fix: Prevent restrictions from activating when using the Elementor page builder. |
| 391 |
|
| 392 |
= v1.1.6 - 03/21/2021 = |
| 393 |
|
| 394 |
- Fix: Nonce validation was preventing 3rd party plugin from saving widget settings when it failed. Thanks @jacobmischka |
| 395 |
- Fix: Prevent corrupted options from preventing saving of settings. |
| 396 |
|
| 397 |
= v1.1.5 - 02/22/2021 = |
| 398 |
|
| 399 |
- Fix: Issue where roles with `-` would not save when checked. |
| 400 |
|
| 401 |
= v1.1.4 - 03/24/2020 = |
| 402 |
|
| 403 |
- Improvement: Added gettext handling for several strings that were not translatable. |
| 404 |
- Tweak: Process shortcodes in default denial message contents. |
| 405 |
- Tweak: Various improvements in form reliability & user experience. |
| 406 |
- Fix: Issues with ajax search fields not retaining their values after save. |
| 407 |
- Fix: Issue where only would show 10 pages. |
| 408 |
- Fix: PHP 7.4 compatibility fixes. |
| 409 |
|
| 410 |
= v1.1.3 - 12/03/2019 = |
| 411 |
|
| 412 |
- Fix: Custom post type conditions were not always registered. |
| 413 |
|
| 414 |
= v1.1.2 - 11/10/2019 = |
| 415 |
|
| 416 |
- Tweak: Remove erroneous console.log messages in admin. |
| 417 |
- Fix: Fatal error when empty shortcode used. |
| 418 |
|
| 419 |
= v1.1.1 - 10/15/2019 = |
| 420 |
|
| 421 |
- Fix: Bugs where variables were not always the expected type. |
| 422 |
|
| 423 |
= v1.1.0 = |
| 424 |
|
| 425 |
- Improvement: Added default denial message to shortcode. |
| 426 |
- Improvement: Render nested shortcodes in the [content_control] shortcode. |
| 427 |
- Fix: Bug where multiple roles checked together in restriction editor. |
| 428 |
|
| 429 |
= v1.0.3 = |
| 430 |
|
| 431 |
- Fix: Minor notice on activation. |
| 432 |
|
| 433 |
= v1.0.2 = |
| 434 |
|
| 435 |
- Fix: Call to undefined function. |
| 436 |
|
| 437 |
= v1.0.1 = |
| 438 |
|
| 439 |
- Fix: Non static method called statically |
| 440 |
- Fix: Bug when using invalid variable type. |
| 441 |
|
| 442 |
= v1.0.0 = |
| 443 |
|
| 444 |
- Initial Release |
| 445 |
|