{"id":370244,"date":"2026-09-28T07:46:23","date_gmt":"2026-09-28T07:46:23","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dd-admin-visibility-manager\/"},"modified":"2026-09-28T07:45:53","modified_gmt":"2026-09-28T07:45:53","slug":"dd-admin-visibility-manager","status":"publish","type":"plugin","link":"https:\/\/bcc.wordpress.org\/plugins\/dd-admin-visibility-manager\/","author":15344623,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.9","stable_tag":"1.2.9","tested":"7.1.2","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Dalmatian Dream Admin Visibility Manager","header_author":"Marin Horvat","header_description":"Manage WordPress admin menu, submenu and admin bar visibility by role.","assets_banners_color":"d3e8fd","last_updated":"2026-09-28 07:45:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/dalmatiandream.com\/","header_author_uri":"https:\/\/horvat.info","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.9":{"tag":"1.2.9","author":"whitedd","date":"2026-09-28 07:45:53","revision":3716542}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3716545,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3716545,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3716545,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3716545,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.9"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[83,1865,895,1915,1541],"plugin_category":[43,54,58],"plugin_contributors":[275315],"plugin_business_model":[],"class_list":["post-370244","plugin","type-plugin","status-publish","hentry","plugin_tags-admin","plugin_tags-menu","plugin_tags-permissions","plugin_tags-roles","plugin_tags-toolbar","plugin_category-customization","plugin_category-security-and-spam-protection","plugin_category-user-management","plugin_contributors-whitedd","plugin_committers-whitedd"],"banners":{"banner":"https:\/\/ps.w.org\/dd-admin-visibility-manager\/assets\/banner-772x250.png?rev=3716545","banner_2x":"https:\/\/ps.w.org\/dd-admin-visibility-manager\/assets\/banner-1544x500.png?rev=3716545","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dd-admin-visibility-manager\/assets\/icon-128x128.png?rev=3716545","icon_2x":"https:\/\/ps.w.org\/dd-admin-visibility-manager\/assets\/icon-256x256.png?rev=3716545","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Dalmatian Dream Admin Visibility Manager provides a role-based interface for controlling which WordPress admin areas are visible and directly accessible. It scans registered admin menus, submenus and toolbar nodes, then stores active visibility rules and scanned catalogs in dedicated plugin database tables.<\/p>\n\n<p>The plugin does not replace WordPress capabilities. WordPress core and other plugins should still perform their normal capability checks for privileged actions.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>dd-admin-visibility-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from the Plugins screen.<\/li>\n<li>Open Settings &gt; Dalmatian Dream Admin Visibility Manager.<\/li>\n<li>Scan menus and configure role permissions.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20change%20wordpress%20role%20capabilities%3F\"><h3>Does this plugin change WordPress role capabilities?<\/h3><\/dt>\n<dd><p>Mostly no. Menu, toolbar and post-editor element visibility are enforced by this plugin. It also synchronizes the limited capabilities required by its DD Ad Manager integration and the Marketing own-post workflow.<\/p><\/dd>\n<dt id=\"can%20i%20restore%20the%20previous%20configuration%3F\"><h3>Can I restore the previous configuration?<\/h3><\/dt>\n<dd><p>Yes. The settings screen keeps the previous saved configuration as a backup that can be restored.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.9<\/h4>\n\n<ul>\n<li>Fixed an activation TypeError when reading menu capabilities for a role.<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Renamed the plugin and WordPress.org slug to Dalmatian Dream Admin Visibility Manager.<\/li>\n<li>Moved the admin notice fallback CSS into an enqueued stylesheet.<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Fixed duplicate catalog_key database errors during concurrent Admin Bar scans.<\/li>\n<li>Improved Admin Bar catalog deduplication by using type, parent and slug as the identity.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Prepared plugin metadata and package for WordPress.org distribution.<\/li>\n<li>Updated author branding to Dalmatian Dream.<\/li>\n<li>Updated translation template metadata.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Fix Post Editor Elements so boxes explicitly enabled for a role are shown even when the user previously hid them through Screen Options.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added per-role control of standard WordPress post editor elements\/meta boxes.<\/li>\n<li>Post editor elements are detected from the real editor, including boxes added by active plugins.<\/li>\n<li>Unchecked elements are removed from the editor and cannot be restored through Screen Options for that role.<\/li>\n<li>Configuration is available independently for every WordPress role.<\/li>\n<li>Roles without an explicit post-editor configuration remain unrestricted for backward compatibility.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Added restricted editorial access for the Marketing role: create, publish and edit own posts only.<\/li>\n<li>Marketing post list is restricted to the current user's own posts.<\/li>\n<li>Direct editing of another author's post remains blocked by WordPress capabilities and DDAVM direct-access checks.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Allow DD Ad Manager hidden Add\/Edit Ad route when Ads is enabled for the role.<\/li>\n<li>Allow DD Ad Manager hidden Add\/Edit Placement route when Placements is enabled for the role.<\/li>\n<li>Keep granular DD Ad Manager capability enforcement intact on editor screens.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Updated WordPress compatibility metadata for WordPress 7.1.<\/li>\n<li>Updated translation template metadata and normalized the saved-settings source string for translations.<\/li>\n<\/ul>\n\n<h4>1.1.8<\/h4>\n\n<ul>\n<li>Added per-role reset to current WordPress menu defaults.<\/li>\n<li>Admin Bar baseline is recaptured on the next toolbar load by a user of the reset role.<\/li>\n<li>Reset preserves the prior configuration for Restore Previous Configuration.<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Added first-run role baseline initialization from the admin menu and submenu capabilities registered by WordPress and active plugins.<\/li>\n<li>Added per-role Admin Bar baseline capture before DDAVM filtering, using the toolbar WordPress and plugins actually generate for that role.<\/li>\n<li>Existing saved DDAVM rules are preserved and are never overwritten by baseline initialization.<\/li>\n<li>Fresh installations no longer use hardcoded Lite menu defaults.<\/li>\n<li>Upgrades from older versions re-baseline only roles that still exactly match the untouched generated defaults; customized roles are preserved.<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Prepared the plugin for WordPress.org distribution.<\/li>\n<li>Avoided running database schema updates on every request.<\/li>\n<li>Updated translation and directory metadata.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Added WordPress.org-compatible plugin metadata and readme.<\/li>\n<li>Updated namespace prefix for plugin checks.<\/li>\n<li>Improved POST sanitization for permission saving.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Updated WordPress compatibility metadata.<\/li>\n<li>Adjusted permission POST handling for plugin checks.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Reworked checkbox permission input reading for plugin checks.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added dedicated database tables for menu rules, admin bar rules, menu catalog and admin bar catalog.<\/li>\n<li>Migrated existing option-based data into plugin tables.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Hardened custom table access for plugin checks.<\/li>\n<li>Marked intentional custom-table reads and writes.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Allowed direct editing of existing posts when the Posts menu is enabled for the role.<\/li>\n<li>Kept pages and custom post types blocked unless their own menu is enabled.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Kept the WordPress mobile admin menu toggle visible so the admin menu can open on phones.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Allowed WordPress post publish\/save requests when the matching post type menu is enabled.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Hardened post.php edit\/save\/publish access checks to require a real post ID and the WordPress edit_post capability.<\/li>\n<li>Retained the mobile admin menu toggle fix from 1.1.3 and the publish\/save handling from 1.1.4.<\/li>\n<li>Removed the permissive fallback that assumed the standard post type when no real post could be resolved.<\/li>\n<\/ul>","raw_excerpt":"Dalmatian Dream Admin Visibility Manager controls WordPress admin menu, submenu and admin bar visibility by user role.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=370244"}],"author":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/whitedd"}],"wp:attachment":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370244"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370244"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370244"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370244"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370244"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}