=== Menu Visibility Control === Contributors: davisw3 Donate link: https://knowledge.buzz/donate Tags: menu, visibility, roles, navigation, conditional Requires at least: 5.8 Tested up to: 6.8 Stable tag: 1.0.3 Requires PHP: 7.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Easily control who can see each WordPress menu item — everyone, logged-in users, logged-out users, or specific user roles. == Description == **Menu Visibility Control** is a lightweight and reliable WordPress plugin that lets you manage menu visibility based on login status or user roles — directly inside the menu editor. Choose who sees each menu item: * 👥 Everyone * 🔒 Logged-in users only * 🚪 Logged-out users only * 🧩 Specific user roles (Administrator, Editor, Subscriber, etc.) No extra pages, no complicated setup — just open **Appearance → Menus**, edit a menu item, and select the visibility option. ### 💡 Perfect For - Membership and community sites - Client dashboards and intranets - Multi-role WordPress sites - Blogs that need different menus for visitors vs. members ### 🔧 Key Features - Seamlessly integrates with **Appearance → Menus** - Works with **any theme or page builder** using `wp_nav_menu()` - Role-based visibility support - Secure and performance-optimized (nonces, sanitization, minimal footprint) - 100 % free and open-source ### 🧠 Why Use It Unlike heavier plugins, Menu Visibility Control uses core WordPress filters only — keeping your site fast, secure, and fully compatible with caching or multilingual setups. == Installation == 1. Upload the plugin folder to `/wp-content/plugins/menu-visibility-control/`, or install it directly from the WordPress plugin installer. 2. Activate it through **Plugins → Installed Plugins**. 3. Go to **Appearance → Menus**, expand a menu item, and set the **Visibility** dropdown to: - *Everyone* - *Logged In Users* - *Logged Out Users* - *User Roles* (then tick which roles can view it) That’s all — no configuration required. == Frequently Asked Questions == = Where are the plugin settings? = There’s no separate settings page. All visibility controls appear directly in **Appearance → Menus** when editing menu items. = Can I hide or show items by user role? = Yes. Choose *User Roles* as the visibility option, then select the specific roles allowed to see that menu item. = Does it work with all themes and builders? = Yes. It works with any properly coded theme or builder that uses WordPress’ native `wp_nav_menu()` function, including Elementor, Divi, and Block themes. = Will it affect my site speed? = No. The plugin is extremely lightweight and only runs on menu rendering. = Can I translate the plugin? = Yes. It’s fully ready for translation using the text domain `menu-visibility-control`. = Is it safe for production sites? = Absolutely. It follows WordPress coding standards, uses nonces and sanitization, and stores only simple metadata in each menu item. == Screenshots == 1. Visibility options in the WordPress menu editor. 2. Role selection checkboxes for “User Roles.” == Changelog == = 1.0.3 = * Minor performance improvements and code cleanup. * Confirmed compatibility with WordPress 6.8 and PHP 8+. * Updated admin notice and translations. = 1.0.2 = * Added role-based visibility. * Improved data sanitization and security checks. = 1.0.1 = * Initial public release. == Upgrade Notice == = 1.0.3 = Recommended update for compatibility with WordPress 6.8 +. No breaking changes. == Support == Need help or want to share feedback? Visit the [support forum](https://wordpress.org/support/plugin/menu-visibility-control/) or [leave a review](https://wordpress.org/support/plugin/menu-visibility-control/reviews/#new-post). If you love this plugin, consider [donating](https://knowledge.buzz/donate) to support ongoing development. == License == This plugin is licensed under the [GPL v2 or later](https://www.gnu.org/licenses/gpl-2.0.html). You are free to use, modify, and redistribute it under the same license.