{"id":205105,"date":"2024-10-01T14:46:17","date_gmt":"2024-10-01T14:46:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/visibility-controls-for-editor-blocks\/"},"modified":"2026-05-20T17:16:02","modified_gmt":"2026-05-20T17:16:02","slug":"visibility-controls-for-editor-blocks","status":"publish","type":"plugin","link":"https:\/\/gd.wordpress.org\/plugins\/visibility-controls-for-editor-blocks\/","author":17753129,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.5","stable_tag":"1.2.5","tested":"7.0","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Visibility Controls for Editor Blocks","header_author":"Denis Doroshchuk","header_description":"Adds controls to hide blocks on mobile, tablet, and desktop devices in Gutenberg.","assets_banners_color":"f6f7f8","last_updated":"2026-05-20 17:16:02","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/coff.ee\/denisdoroshchuk","header_plugin_uri":"","header_author_uri":"https:\/\/doroshchuk.me\/","rating":5,"author_block_rating":0,"active_installs":800,"downloads":7076,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"denisdoroshchuk","date":"2024-10-01 15:09:21"},"1.0.1":{"tag":"1.0.1","author":"denisdoroshchuk","date":"2024-10-02 15:50:48"},"1.0.2":{"tag":"1.0.2","author":"denisdoroshchuk","date":"2024-10-08 18:48:18"},"1.0.3":{"tag":"1.0.3","author":"denisdoroshchuk","date":"2025-10-28 18:23:07"},"1.0.4":{"tag":"1.0.4","author":"denisdoroshchuk","date":"2025-10-28 18:23:07"},"1.0.5":{"tag":"1.0.5","author":"denisdoroshchuk","date":"2025-10-28 18:23:07"},"1.0.6":{"tag":"1.0.6","author":"denisdoroshchuk","date":"2025-10-28 18:23:07"},"1.0.7":{"tag":"1.0.7","author":"denisdoroshchuk","date":"2024-11-03 17:26:55"},"1.0.8":{"tag":"1.0.8","author":"denisdoroshchuk","date":"2024-11-12 19:43:37"},"1.0.9":{"tag":"1.0.9","author":"denisdoroshchuk","date":"2024-11-13 20:34:19"},"1.1.0":{"tag":"1.1.0","author":"denisdoroshchuk","date":"2025-01-21 16:30:22"},"1.1.1":{"tag":"1.1.1","author":"denisdoroshchuk","date":"2025-04-22 15:56:42"},"1.1.2":{"tag":"1.1.2","author":"denisdoroshchuk","date":"2025-05-04 12:42:05"},"1.1.3":{"tag":"1.1.3","author":"denisdoroshchuk","date":"2025-07-20 08:50:10"},"1.2.0":{"tag":"1.2.0","author":"denisdoroshchuk","date":"2025-10-28 18:23:07"},"1.2.1":{"tag":"1.2.1","author":"denisdoroshchuk","date":"2025-10-28 18:23:07"},"1.2.2":{"tag":"1.2.2","author":"denisdoroshchuk","date":"2026-04-28 17:18:24"},"1.2.3":{"tag":"1.2.3","author":"denisdoroshchuk","date":"2026-05-04 20:07:48"},"1.2.4":{"tag":"1.2.4","author":"denisdoroshchuk","date":"2026-05-07 08:39:26"},"1.2.5":{"tag":"1.2.5","author":"denisdoroshchuk","date":"2026-05-20 17:16:02"}},"upgrade_notice":{"1.2.5":"<ul>\n<li>Compatibility update for WordPress 7.0 and PHP 7.4+.<\/li>\n<\/ul>","1.2.4":"<ul>\n<li>Adds Pro feature information in the editor and settings page while keeping existing free visibility controls unchanged.<\/li>\n<\/ul>","1.2.3":"<ul>\n<li>This update improves the settings page experience and adds a delayed, dismissible review prompt.<\/li>\n<\/ul>","1.2.2":"<ul>\n<li>This update improves compatibility with WordPress 6.9 and fixes dynamic block visibility behavior.<\/li>\n<\/ul>","1.2.1":"<ul>\n<li>Fixed a problem with index.js<\/li>\n<\/ul>","1.2.0":"<ul>\n<li>Internal build system updated to use @wordpress\/scripts. No changes to plugin behavior. Safe to update.<\/li>\n<\/ul>","1.1.2":"<ul>\n<li>Fixed a problem with some dynamic blocks<\/li>\n<\/ul>","1.1.1":"<ul>\n<li>Tested up to WordPress 6.8<\/li>\n<\/ul>","1.1.0":"<ul>\n<li>Tested up to WordPress 6.7.1<\/li>\n<\/ul>","1.0.9":"<ul>\n<li>Tested up to WordPress 6.7<\/li>\n<\/ul>","1.0.8":"<ul>\n<li>This update replaces deprecated function<\/li>\n<\/ul>","1.0.7":"<ul>\n<li>This update adds video tips for using the plugin to the settings page<\/li>\n<\/ul>","1.0.5":"<ul>\n<li>This update adds new options to hide blocks for logged-in and non-logged-in users, improving visibility control in the editor. You will now see visual indicators for blocks that are hidden based on user login status.<\/li>\n<\/ul>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3161596,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3522669,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-3088x1000.jpg":{"filename":"banner-3088x1000.jpg","revision":3522669,"resolution":"3088x1000","location":"assets","locale":"","width":3088,"height":1000},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3522669,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.1.3","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3160976,"resolution":"1","location":"assets","locale":"","width":3322,"height":2196},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3160976,"resolution":"2","location":"assets","locale":"","width":3322,"height":2196},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3160976,"resolution":"3","location":"assets","locale":"","width":3322,"height":2196},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3160976,"resolution":"4","location":"assets","locale":"","width":3322,"height":2196}},"screenshots":{"1":"Settings page for configuring breakpoints under <strong>Settings &gt; Gutenberg Blocks Visibility<\/strong>.","2":"Visibility settings in the Gutenberg editor sidebar, including device and login status controls.","3":"Block visibility indicators shown inside the editor.","4":"Example of how visibility settings affect the layout on a mobile device."}},"plugin_section":[],"plugin_tags":[232345,175240,148076,216191,30738],"plugin_category":[],"plugin_contributors":[180986],"plugin_business_model":[],"class_list":["post-205105","plugin","type-plugin","status-publish","hentry","plugin_tags-block-visibility","plugin_tags-conditional-blocks","plugin_tags-gutenberg","plugin_tags-responsive-blocks","plugin_tags-responsive-design","plugin_contributors-denisdoroshchuk","plugin_committers-denisdoroshchuk"],"banners":{"banner":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/banner-772x250.jpg?rev=3522669","banner_2x":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/banner-1544x500.jpg?rev=3522669","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/icon-256x256.gif?rev=3161596","icon_2x":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/icon-256x256.gif?rev=3161596","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/screenshot-1.png?rev=3160976","caption":"Settings page for configuring breakpoints under <strong>Settings &gt; Gutenberg Blocks Visibility<\/strong>."},{"src":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/screenshot-2.png?rev=3160976","caption":"Visibility settings in the Gutenberg editor sidebar, including device and login status controls."},{"src":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/screenshot-3.png?rev=3160976","caption":"Block visibility indicators shown inside the editor."},{"src":"https:\/\/ps.w.org\/visibility-controls-for-editor-blocks\/assets\/screenshot-4.png?rev=3160976","caption":"Example of how visibility settings affect the layout on a mobile device."}],"raw_content":"<!--section=description-->\n<p><strong>Visibility Controls for Editor Blocks<\/strong> adds native visibility settings to the WordPress block editor, so you can hide or show Gutenberg blocks based on screen size and user login status without writing custom CSS.<\/p>\n\n<p>Use it to hide blocks on mobile, tablet, or desktop, show different content to logged-in users and guests, and fine-tune responsive layouts with your own breakpoints. The controls appear directly in the block editor sidebar, so you can manage visibility while editing your content.<\/p>\n\n<p>The plugin works with regular Gutenberg blocks and modern dynamic blocks, including block theme and site editor contexts.<\/p>\n\n<p>Need more advanced conditional visibility? <strong>Visibility Controls for Editor Blocks Pro<\/strong> adds user role visibility, date and time scheduling, URL\/query parameter rules, and an optional cache-friendly frontend mode for scheduled and URL-based rules.<\/p>\n\n<h3>Key Features:<\/h3>\n\n<ul>\n<li><strong>Device visibility controls<\/strong>: Hide blocks on mobile, tablet, or desktop.<\/li>\n<li><strong>Login status visibility<\/strong>: Show or hide blocks for logged-in users or non-logged-in visitors.<\/li>\n<li><strong>Custom breakpoints<\/strong>: Define what counts as mobile and tablet for your own theme.<\/li>\n<li><strong>No custom CSS needed<\/strong>: Manage block visibility directly from the editor sidebar.<\/li>\n<li><strong>Gutenberg integration<\/strong>: Visibility options appear where you already edit block settings.<\/li>\n<li><strong>Dynamic block support<\/strong>: Works with server-rendered blocks, block themes, and modern WordPress layouts.<\/li>\n<\/ul>\n\n<h3>Pro Features:<\/h3>\n\n<ul>\n<li><strong>User role visibility<\/strong>: Show or hide blocks for selected WordPress user roles.<\/li>\n<li><strong>Date and time scheduling<\/strong>: Display blocks only during a selected time window.<\/li>\n<li><strong>URL and query rules<\/strong>: Show blocks only when a URL parameter is present or matches a specific value.<\/li>\n<li><strong>Cache-friendly frontend mode<\/strong>: Optionally evaluate scheduled and URL rules in the visitor browser for cached pages.<\/li>\n<li><strong>Role list control<\/strong>: Choose which WordPress roles appear in the block editor controls.<\/li>\n<\/ul>\n\n<h3>Ideal For:<\/h3>\n\n<ul>\n<li>Content creators who want to hide large or secondary blocks on smaller screens.<\/li>\n<li>Site owners who want to show different calls to action to guests and logged-in users.<\/li>\n<li>Designers who need responsive Gutenberg layouts without writing one-off CSS.<\/li>\n<li>Developers and agencies who want simple block visibility controls for client sites.<\/li>\n<\/ul>\n\n<p>With <strong>Visibility Controls for Editor Blocks<\/strong>, you can keep one clean editor workflow while tailoring the frontend experience for different devices and visitors.<\/p>\n\n<h3>Video tips for using the Visibility Controls for Editor Blocks plugin:<\/h3>\n\n<p>https:\/\/youtube.com\/playlist?list=PLUo5dzT4ZLuPG_2Pproj_kK_-WtHNJwzY&amp;feature=shared<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later. You can find more information at <a href=\"https:\/\/www.gnu.org\/licenses\/gpl-3.0.html\">https:\/\/www.gnu.org\/licenses\/gpl-3.0.html<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/visibility-controls-for-editor-blocks<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to \"Settings &gt; Gutenberg Blocks Visibility\" to configure the breakpoints for mobile, tablet, and desktop devices.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20set%20custom%20breakpoints%3F\"><h3>How do I set custom breakpoints?<\/h3><\/dt>\n<dd><p>In the WordPress admin area, navigate to <strong>Settings &gt; Gutenberg Block Visibility<\/strong> to configure custom breakpoints for mobile and tablet devices.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20a%20gutenberg%20block%20on%20mobile%20only%3F\"><h3>Can I hide a Gutenberg block on mobile only?<\/h3><\/dt>\n<dd><p>Yes. Select a block in the editor and enable <strong>Hide on Mobile<\/strong> in the Visibility Settings panel.<\/p><\/dd>\n<dt id=\"can%20i%20show%20content%20only%20to%20logged-in%20users%20or%20guests%3F\"><h3>Can I show content only to logged-in users or guests?<\/h3><\/dt>\n<dd><p>Yes. You can hide blocks for logged-in users or hide blocks for non-logged-in visitors, which makes it easy to show different content to members and guests.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20dynamic%20blocks%20and%20block%20themes%3F\"><h3>Does it work with dynamic blocks and block themes?<\/h3><\/dt>\n<dd><p>Yes. The plugin supports modern dynamic Gutenberg blocks and block theme rendering contexts.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. The Pro version includes all free visibility controls and adds user role visibility, date and time scheduling, URL\/query parameter rules, and cache-friendly frontend processing for selected rule types.<\/p><\/dd>\n<dt id=\"can%20pro%20visibility%20rules%20work%20with%20full-page%20cache%3F\"><h3>Can Pro visibility rules work with full-page cache?<\/h3><\/dt>\n<dd><p>Yes, with the Pro frontend cache-friendly mode. In that mode, scheduled visibility and URL\/query rules are evaluated in the browser. Role-based rules remain server-side for privacy and should be used with cache rules that vary or bypass logged-in users.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20other%20block%20editors%20like%20elementor%20or%20beaver%20builder%3F\"><h3>Does this plugin support other block editors like Elementor or Beaver Builder?<\/h3><\/dt>\n<dd><p>No, this plugin is designed to work specifically with the Gutenberg block editor.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20affect%20the%20performance%20of%20my%20website%3F\"><h3>Will this plugin affect the performance of my website?<\/h3><\/dt>\n<dd><p>The plugin only adds small visibility classes and the CSS needed to hide matching blocks. It is designed to stay lightweight and avoid changing your block content structure.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.0.<\/li>\n<li>Updated the plugin metadata to require PHP 7.4 or higher, matching the WordPress 7.0 minimum supported PHP version.<\/li>\n<li>Improved the editor sidebar integration for the WordPress 7.0 block editor.<\/li>\n<li>Removed a generated translation cache file from the release package.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Added Pro upgrade information to the block editor visibility panel.<\/li>\n<li>Added a Pro feature card to the plugin settings page.<\/li>\n<li>Verified visibility controls in the WordPress Site Editor and template part editing flow.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added a Pro upgrade path for role visibility, scheduled visibility, and URL\/query visibility rules.<\/li>\n<li>Improved the settings page layout and removed extra branding from the page header.<\/li>\n<li>Moved the review prompt into a standard WordPress admin notice on the plugin settings page.<\/li>\n<li>Added a 7-day delay before showing the review prompt to new and existing users.<\/li>\n<li>Replaced the external Buy Me a Coffee script with a regular support link.<\/li>\n<li>Updated plugin author metadata.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.9.<\/li>\n<li>Fixed dynamic block visibility handling for WordPress 6.9.4 and newer block rendering contexts.<\/li>\n<li>Fixed the settings button URL in the block editor for subdirectory installs.<\/li>\n<li>Improved visibility CSS loading for block themes and block widget contexts.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed a problem with index.js<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Refactored JavaScript build system to use @wordpress\/scripts.<\/li>\n<li>Removed legacy Gulp-based setup for cleaner and more maintainable builds.<\/li>\n<li>No functional changes for end users<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed a problem with renaming blocks<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed a problem with some dynamic blocks<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.8<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.7.1<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.7<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Added wp.blockEditor.InspectorControls instead wp.editor.InspectorControls<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Added video tips to the settings page<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Small fix<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added option to hide blocks for logged-in users.<\/li>\n<li>Added option to hide blocks for non-logged-in users.<\/li>\n<li>Added visual indication (strikethrough and overlay) for blocks hidden based on user login status in Gutenberg editor.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added support for dynamic Gutenberg block, for example: Navigation, Site Logo, Post Content etc.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added new language - ru_RU.<\/li>\n<li>Fixed a small bug.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added new option - Disable CSS loading on pages without Gutenberg.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with functionality to hide blocks on mobile, tablet, and desktop devices.<\/li>\n<li>User-configurable breakpoints for each device type.<\/li>\n<\/ul>","raw_excerpt":"Hide Gutenberg blocks by device, custom breakpoints, and user login status. Pro adds role, schedule, and URL rules.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/205105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=205105"}],"author":[{"embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/denisdoroshchuk"}],"wp:attachment":[{"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=205105"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=205105"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=205105"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=205105"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=205105"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=205105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}