{"id":266801,"date":"2026-01-07T03:29:28","date_gmt":"2026-01-07T03:29:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/restrictly-wp\/"},"modified":"2026-01-07T03:55:06","modified_gmt":"2026-01-07T03:55:06","slug":"restrictly-access-control","status":"publish","type":"plugin","link":"https:\/\/tr.wordpress.org\/plugins\/restrictly-access-control\/","author":13611927,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.1.1","stable_tag":"0.1.1","tested":"6.9.4","requires":"5.2","requires_php":"7.4","requires_plugins":null,"header_name":"Restrictly - Access Control","header_author":"Bobby Alcorn","header_description":"Lightweight, performance-focused access control for WordPress.","assets_banners_color":"b0b0b0","last_updated":"2026-01-07 03:55:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/restrictlypro.com","header_author_uri":"https:\/\/github.com\/bobbyalcorn","rating":0,"author_block_rating":0,"active_installs":0,"downloads":133,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"bobbyalcorn","date":"2026-01-07 03:55:06"}},"upgrade_notice":{"0.1.1":"<p>Adds internal observability hooks used by Restrictly\u2122 Pro for debugging and access diagnostics. No behavior changes.<\/p>","0.1.0":"<p>Initial public release of <strong>Restrictly\u2122<\/strong>, including FSE block visibility, navigation visibility, REST API enforcement, and role-based content control.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3434030,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3434030,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3434030,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3434030,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3434030,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3434030,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3434030,"resolution":"10","location":"assets","locale":""},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3434030,"resolution":"11","location":"assets","locale":""},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3434030,"resolution":"12","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3434030,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3434030,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3434030,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3434030,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3434030,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3434030,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3434030,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3434030,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"Access Control Settings \u2013 Manage global restriction behavior and user role options.","2":"Pages List Columns \u2013 Instantly see which pages are restricted.","3":"Quick Edit (All Logged-In Users) \u2013 Restrict access directly from the Quick Edit panel.","4":"Quick Edit (Specific Role + Redirect) \u2013 Assign roles and custom redirects.","5":"Standard Edit Screen \u2013 Restrict content via Restrictly's sidebar meta box.","6":"Bulk Edit \u2013 Apply restriction settings to multiple items at once.","7":"Menu Setup Notice \u2013 Prompt to assign a navigation menu for Restrictly to manage.","8":"No Menus Found \u2013 Friendly onboarding message to create a menu.","9":"Matched &amp; Mismatched Menu Items \u2013 Visual markers for items with Restrictly data.","10":"Menu Validation (All Good) \u2013 Confirms all menu items are synced.","11":"FSE Visibility Indicator \u2013 Shows block-level visibility inside the Site Editor.","12":"Theme Compatibility Notice \u2013 Appears when a theme does not support standard menus."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1912,16114,23853,11917,6309],"plugin_category":[],"plugin_contributors":[253492],"plugin_business_model":[],"class_list":["post-266801","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-content-restriction","plugin_tags-rest-api","plugin_tags-user-roles","plugin_tags-visibility","plugin_contributors-bobbyalcorn","plugin_committers-bobbyalcorn"],"banners":{"banner":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/banner-772x250.png?rev=3434030","banner_2x":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/banner-1544x500.png?rev=3434030","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/icon.svg?rev=3434030","icon":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/icon.svg?rev=3434030","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-1.png?rev=3434030","caption":"Access Control Settings \u2013 Manage global restriction behavior and user role options."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-2.png?rev=3434030","caption":"Pages List Columns \u2013 Instantly see which pages are restricted."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-3.png?rev=3434030","caption":"Quick Edit (All Logged-In Users) \u2013 Restrict access directly from the Quick Edit panel."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-4.png?rev=3434030","caption":"Quick Edit (Specific Role + Redirect) \u2013 Assign roles and custom redirects."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-5.png?rev=3434030","caption":"Standard Edit Screen \u2013 Restrict content via Restrictly's sidebar meta box."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-6.png?rev=3434030","caption":"Bulk Edit \u2013 Apply restriction settings to multiple items at once."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-7.png?rev=3434030","caption":"Menu Setup Notice \u2013 Prompt to assign a navigation menu for Restrictly to manage."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-8.png?rev=3434030","caption":"No Menus Found \u2013 Friendly onboarding message to create a menu."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-9.png?rev=3434030","caption":"Matched &amp; Mismatched Menu Items \u2013 Visual markers for items with Restrictly data."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-10.png?rev=3434030","caption":"Menu Validation (All Good) \u2013 Confirms all menu items are synced."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-11.png?rev=3434030","caption":"FSE Visibility Indicator \u2013 Shows block-level visibility inside the Site Editor."},{"src":"https:\/\/ps.w.org\/restrictly-access-control\/assets\/screenshot-12.png?rev=3434030","caption":"Theme Compatibility Notice \u2013 Appears when a theme does not support standard menus."}],"raw_content":"<!--section=description-->\n<p>Restrictly\u2122 delivers professional-grade access control without compromising your site's speed or reliability.\nIt enforces rule-based visibility across <strong>pages<\/strong>, <strong>posts<\/strong>, <strong>menus<\/strong>, <strong>Full Site Editing (FSE) blocks<\/strong>, <strong>search results<\/strong>, and <strong>REST API responses<\/strong>, while maintaining full compatibility with themes and page builders.<\/p>\n\n<p>In the free version, access rules are driven by user roles and login status, providing a clean and reliable foundation for content and navigation control.<\/p>\n\n<p>Includes <strong>Extended Visibility Filtering<\/strong>, which automatically hides restricted content from search results, archives, and public listings.<\/p>\n\n<p>For full documentation, setup guides, and developer notes, visit the <a href=\"https:\/\/restrictlypro.com\">official Restrictly\u2122 website<\/a>.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Full Site Editing (FSE) Integration<\/strong> \u2013 Add block-level visibility directly inside the Site Editor.\nChoose who can see each block (Everyone, Logged-In, Logged-Out, or Specific Roles) with optional color-coded indicators.<\/li>\n<li><strong>Navigation Block Support (FSE Menus)<\/strong> \u2013 Manage visibility for navigation links, submenus, and page lists directly within the Site Editor.<\/li>\n<li><strong>Extended Visibility Filtering<\/strong> \u2013 Automatically hides restricted content from:\n\n<ul>\n<li>Search results<\/li>\n<li>Category, tag, and author archives<\/li>\n<li>Home listings and custom queries<\/li>\n<\/ul><\/li>\n<li><strong>REST API Enforcement<\/strong> \u2013 Applies Restrictly\u2122 visibility rules to REST API responses, automatically filtering restricted content for unauthorized users.<\/li>\n<li><strong>Dynamic Menu Visibility (Classic Menus)<\/strong> \u2013 Control menu item visibility by login state or user role in the classic menu editor.<\/li>\n<li><strong>Full, Quick, and Bulk Edit Support<\/strong> \u2013 Manage restrictions from any editor interface.<\/li>\n<li><strong>Sortable, Filterable Columns<\/strong> \u2013 Instantly see and organize restricted items in list tables.<\/li>\n<li><strong>Administrator Override<\/strong> \u2013 Allows administrators to bypass restrictions for testing.<\/li>\n<li><strong>Divi &amp; Page Builder Compatibility<\/strong> \u2013 Works perfectly with Divi and other builders.<\/li>\n<li><strong>Performance-Focused &amp; Secure<\/strong> \u2013 Built entirely on WordPress core APIs with strict sanitization and escaping.<\/li>\n<li><strong>Translation Ready<\/strong> \u2013 Includes a <code>.pot<\/code> file for localization.<\/li>\n<li><strong>Clean Uninstall<\/strong> \u2013 Removes all plugin data and options when uninstalled.<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<h4>Restricting Content<\/h4>\n\n<p>Restrictly\u2122 lets you limit access to any <strong>page<\/strong> or <strong>post<\/strong> using intuitive controls:\n- <strong>Login-Based Restrictions<\/strong> \u2013 Limit visibility to Logged-In or Logged-Out users.\n- <strong>Role-Based Restrictions<\/strong> \u2013 Allow access only to specific user roles.\n- <strong>Enforcement Actions<\/strong> \u2013 Display a custom message or redirect unauthorized users.\n- <strong>Administrator Override<\/strong> \u2013 Admins can always access restricted content when enabled.<\/p>\n\n<h4>Restricting Blocks (FSE)<\/h4>\n\n<p>Restrictly\u2122 integrates directly with the WordPress Site Editor (FSE) to provide per-block visibility:\n- Choose <strong>Everyone<\/strong>, <strong>Logged-In<\/strong>, <strong>Logged-Out<\/strong>, or <strong>Specific Roles<\/strong>.\n- Instantly preview restrictions using colored visibility indicators.\n- Restrictions are enforced server-side for full security and consistency.<\/p>\n\n<h4>Restricting Navigation (FSE Menus)<\/h4>\n\n<p>Restrictly\u2122 also controls FSE Navigation menu visibility:\n- Show or hide individual links, submenus, and page lists by login status or role.\n- Works natively inside the block-based Navigation editor.<\/p>\n\n<h4>REST API Enforcement<\/h4>\n\n<p>Restrictly\u2122 applies identical access logic to REST API endpoints.\nUnauthorized users see redacted content instead of restricted data \u2014 ensuring privacy across your site.<\/p>\n\n<h4>Search &amp; Archive Filtering<\/h4>\n\n<p>Restricted content is automatically excluded from:\n- <strong>Search results<\/strong>\n- <strong>Category, Tag, and Author archives<\/strong>\n- <strong>Home and custom queries<\/strong><\/p>\n\n<h4>Restricting Menu Items (Classic Menus)<\/h4>\n\n<ul>\n<li><strong>Login-Based Visibility<\/strong> \u2013 Show menu items only to Logged-In or Logged-Out users.<\/li>\n<li><strong>Role-Based Visibility<\/strong> \u2013 Display menu items only to selected roles.<\/li>\n<li><strong>Conflict Detection<\/strong> \u2013 Highlights mismatched menu vs. page restrictions for easy correction.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>Restrictly\u2122 does <strong>not<\/strong> collect user data, track activity, or transmit information externally.<\/p>\n\n<h3>Contributing &amp; Support<\/h3>\n\n<p>Development happens on GitHub \u2014 pull requests and issue reports welcome:\nhttps:\/\/github.com\/bobbyalcorn\/restrictly<\/p>\n\n<p>For full documentation and support, visit:\nhttps:\/\/restrictlypro.com<\/p>\n\n<!--section=installation-->\n<h4>Requirements<\/h4>\n\n<ul>\n<li><strong>WordPress:<\/strong> 5.2 or higher (tested up to 6.9)<\/li>\n<li><strong>PHP:<\/strong> 7.4 or higher (tested up to 8.3)<\/li>\n<li><strong>Stable Version:<\/strong> 0.1.1<\/li>\n<\/ul>\n\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress dashboard.<\/li>\n<li>Search for <strong>Restrictly<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the latest version from <a href=\"https:\/\/github.com\/bobbyalcorn\/restrictly\">GitHub<\/a>.<\/li>\n<li>Upload it via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>Restrictly\u2122<\/strong> from the <strong>Plugins<\/strong> page.<\/li>\n<\/ol>\n\n<h4>Quick Start<\/h4>\n\n<ol>\n<li>Activate <strong>Restrictly\u2122<\/strong> from the WordPress Plugins menu.<\/li>\n<li>Configure global rules under <strong>Restrictly \u2192 Settings<\/strong>.<\/li>\n<li>Apply restrictions in the page, post, or FSE block editor.<\/li>\n<li>Control menu visibility under <strong>Appearance \u2192 Menus<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='can%20i%20restrict%20custom%20post%20types%3F'><h3>Can I restrict custom post types?<\/h3><\/dt>\n<dd><p>Not yet. Restrictly\u2122 currently supports <strong>Pages<\/strong>, <strong>Posts<\/strong>, and <strong>Blocks (FSE)<\/strong>.\nCustom post type (CPT) restrictions will be available in <strong>Restrictly\u2122 Pro<\/strong>.<\/p><\/dd>\n<dt id='does%20this%20work%20with%20divi%20and%20elementor%3F'><h3>Does this work with Divi and Elementor?<\/h3><\/dt>\n<dd><p>Yes. Restrictly\u2122 uses native WordPress APIs and is fully compatible with popular page builders.<\/p><\/dd>\n<dt id='does%20it%20modify%20wordpress%20menus%3F'><h3>Does it modify WordPress menus?<\/h3><\/dt>\n<dd><p>No. Restrictly\u2122 only manages menu <strong>visibility<\/strong>, never structure or markup.<\/p><\/dd>\n<dt id='will%20this%20slow%20down%20my%20website%3F'><h3>Will this slow down my website?<\/h3><\/dt>\n<dd><p>No. Restrictly\u2122 is optimized for performance and runs lightweight logic only when required.<\/p><\/dd>\n<dt id='can%20i%20restrict%20woocommerce%20products%3F'><h3>Can I restrict WooCommerce products?<\/h3><\/dt>\n<dd><p>Not yet. WooCommerce and CPT restrictions will be part of <strong>Restrictly\u2122 Pro<\/strong>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<p>Observability and internal lifecycle hooks added for Restrictly\u2122 Pro debugging and diagnostics.<\/p>\n\n<ul>\n<li>Added gated debug event emission across all access enforcement paths.<\/li>\n<li>Added evaluation start, evaluation end, and final decision signals.<\/li>\n<li>Added administrator override observability (always-allow behavior).<\/li>\n<li>Added query influence detection for search, archive, and home queries.<\/li>\n<li>Added Full Site Editing (FSE) block, navigation, and query observability hooks.<\/li>\n<li>No behavior changes to access control logic.<\/li>\n<li>No overrides introduced.<\/li>\n<li>Fully backward compatible.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<p>Initial public release of <strong>Restrictly\u2122<\/strong>, a lightweight, performance-focused access control system for WordPress.<\/p>\n\n<ul>\n<li>Role-based and login-based restrictions for pages, posts, and FSE blocks.<\/li>\n<li>FSE Navigation visibility controls.<\/li>\n<li>Extended Visibility Filtering for search, archives, and queries.<\/li>\n<li>REST API content redaction for unauthorized users.<\/li>\n<li>Dynamic menu visibility (Classic &amp; FSE).<\/li>\n<li>Administrator Access Override.<\/li>\n<li>Divi and builder compatibility.<\/li>\n<li>Full, Quick, and Bulk edit support.<\/li>\n<li>Sortable admin columns.<\/li>\n<li>Complete uninstall cleanup.<\/li>\n<li>Fully compliant with PHPCS\/WPCS, PHPStan, ESLint, and Stylelint.<\/li>\n<\/ul>","raw_excerpt":"Performance-focused access control for WordPress, enforcing rule-based visibility across content, menus, and blocks with a clean core.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/266801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=266801"}],"author":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bobbyalcorn"}],"wp:attachment":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=266801"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=266801"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=266801"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=266801"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=266801"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=266801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}