If Menu – Visibility control for Menu Items

Description

Control what menu items your site’s visitors see, based on visibility rules. Here are a few examples:

  • Display a menu item only if current User is logged in
  • Hide menu items if Device is mobile
  • Display menu items for Admins and Editors
  • Hide Login or Register links for Logged in Users
  • Display menu items for Users from US or UK
  • Display menu items only for Customers with active membership
  • Display menu items for visitors browsing with Language English or Spanish

The plugin is easy to use, each menu item will have a new option “Change menu item visibility” which will enable the selection of rules (example in Screenshots)

Features

  • Basic set of visibility rules
    • User state User is logged in
    • User roles Admin Editor Author etc
    • Page type Front page Single page Single post
    • Visitor device Is Mobile
  • Advanced visibility rules – requires Premium plan
    • Visitor location – detect visitor’s Country
    • Visitor language – detect visitor’s selected Language
    • WooCommerce Subscriptions – Display menus for users with active subscription
    • WooCommerce Memberships – Display menus for customers with active membership plans
    • Groups – Detect if users are in specific groups
    • WishList Member – Detect the users’ membership level
    • Restrict Content Pro – Detect the users’ subscription level
  • Multiple rules – mix multiple rules for a menu item visibility
    • show if User is logged in AND Device is mobile
    • show if User is Admin AND Is front page
  • Support for adding your custom rules

Example of adding a new visibility rule is described in the FAQ section

Captures d’écran

  • Enable visibility rules for Menu Items
  • Example of visibility rules

FAQ

If Menu is broken, no visibility rules are available

The code for modifying the menu items is limited and if other plugins/themes try to alter the menu items, this plugin will break.

This is an ongoing issue with WordPress which hopefully will be fixed in a future release.

Try to use just one plugin that changes functionality for menu items.

How can I add a custom visibility rule for menu items?

New rules can be added by any other plugin or theme.

Example of adding a new custom rule for displaying/hiding a menu item when current page is a custom-post-type.

// theme's functions.php or plugin file
add_filter('if_menu_conditions', 'my_new_menu_conditions');

function my_new_menu_conditions($conditions) {
  $conditions[] = array(
    'id'        =>  'single-my-custom-post-type',                       // unique ID for the rule
    'name'      =>  __('Single my-custom-post-type', 'i18n-domain'),    // name of the rule
    'condition' =>  function($item) {                                   // callback - must return Boolean
      return is_singular('my-custom-post-type');
    }
  );

  return $conditions;
}
Where can I find conditional functions?

WordPress provides a lot of functions which can be used to create custom rules for almost any combination that a theme/plugin developer can think of.

Avis

Just As It Says It Does

A very handy and easy way to get some control over your menu items. This plugin is not full of fluff and is very intuitive.

Flexible plugin for controlling what menu items display and when.

Thank you for this great piece of Software! I have used it on multiple projects and it always delivers upon what I need it for. Most recently I used this to display a logout button on a membership website. I didn't build this particular website but it kept bugging me that when I logged in, the menu item still said "login". For basic usability purposes, it now says "logout" when you have logged in. Simple but so important!

Perfect!

Installed and within seconds only admins had access to menu items. Just what I needed... SPLENDID! Thanks for coding this and gifting the WP community 🙂
Lire les 80 avis

Contributeurs & développeurs

« If Menu – Visibility control for Menu Items » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.

Contributeurs

“If Menu – Visibility control for Menu Items” a été traduit dans 3 locales. Remerciez l’équipe de traduction pour ses contributions.

Traduisez « If Menu – Visibility control for Menu Items » dans votre langue.

Le développement vous intéresse ?

Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.

Journal

0.13 – 8 April 2019

  • Updated – Compatiblity with latest WordPress version
  • Updated – Texts & more info about Premium plan
  • Added – Visibility rule – User has expired Subscription, integration with Restrict Content Pro plugin
  • Updated – Visibility rule – Restrict Content Pro Membership shows Level number

0.12.2 – 3 September 2018

  • Fixed – PHP error blocking page load (function formatting language names)

0.12 – 3 September 2018

  • Added – Visiblity rule – Detect visitor’s selected language
  • Updated – Link to Support Request email
  • Fixed – Better check for Premium plan after purchase (was not enabled in some cases)

0.11 – 23 Jul 2018

  • Fixed – Blank page on « Appearance -> Menus »
  • Fixed – Better compatitility with themes / plugins

0.10 – 8 May 2018

  • Added – Visibility rule – User has Subscription Level, integration with Restrict Content Pro plugin
  • Fixed – Display all WooCommerce Membership plans and save the visibility rule
  • Fixed – Small render artifact in menu item title

0.9 – 21 April 2018

This version requires PHP version to be at least 5.4
* Added – Visibility rule – Customer has active membership, integration with WooCommerce Memberships plugin
* Added – Visibility rule – Customer has active Job Manager Listing Subscription, integration with Listing Payments for WP Job Manager plugin
* Added – Option to disable menu item filtering in Admin panel
* Updated – Texts and notices

0.8.3

Release Date – 22 February 2018

  • Fixed – Support for PHP <= 5.3, fixes error

0.8.2

Release Date – 20 February 2018

  • Fixed – Support for older visibilty rule names, fixes PHP warning

0.8.1

Release Date – 20 February 2018

  • Fixed – Better options checking, fixes PHP warning

0.8

Release Date – 19 February 2018

  • Added – Visibility rules with multiple options. Requires Premium plan
  • Added – Visibility rule – User country
  • Added – Visibility rule – Is Super Admin on MultiSite
  • Added – Visibility rule – User is in Group, integration with Groups plugin
  • Added – Visibility rule – User has subscription, integration with WooCommerce Subscriptions plugin
  • Added – Visibility rule – User has active membership plan, integration with WooCommerce Memberships plugin
  • Added – Visibility rule – User membership level, integration with WishList Member plugin
  • Updated – Better conflict detection for Nav_Menu Walker
  • Fixed – translation strings & function used

0.7

Release Date – 18 September 2017

  • Enhancement – Nicer styling for visibility rules
  • Added – Peek option – Let admins preview hidden menu items
  • Added – Settings page

0.6.3

Release Date – 17 August 2017

  • New visibility rule – Language Is RTL
  • Fix – Single rule works on servers with Eval disabled

0.6.2

Release Date – 8 August 2017

  • Fix – Backwards compatibility with PHP < 5.4

0.6.1

Release Date – 7 August 2017

  • Improvement – Change labels & texts for easier use
  • Improvement – Better compatibility with latest versions of WordPress
  • Improvement – Better compatibility with translation plugins
  • Fix – Detection for conflict with other plugins

0.6

Release Date – 27 August 2016

  • Improvement – Dynamic conditions based on default & custom user roles (added by plugins or themes) thanks Daniele
  • Improvement – Grouped conditions by User, Page or other types
  • Fix – Filter menu items in admin section
  • Fix – Better menu items filter saving code

0.5

Release Date – 20 August 2016

  • Improvement – Support for WordPress 4.6
  • Feature – New condition checking logged in user for current site in Multi Site [requested here](https://wordpress.org/support/topic/multi-site-user-is-logged-in-conditi
    on)
  • Feature – Added support for multi conditions thanks for this ideea
  • Improvement – RO & DE translations

0.4.1

Release Date – 13 December 2015

  • Fix – Fixes issue with adding new menu items

0.4

Release Date – 29 November 2015

0.3

Small update

  • Plugin icon
  • Set as compatible with WordPress 4

0.2.1

Minor fixes

  • Fix – Editing menus – show/hide conditions when adding new item (thanks Joseph Segal)

0.2

Update for compatibility with newer versions of WordPress

  • Feature – access to menu item object in condition callback (thanks BramNL)
  • Fix – alert for leaving page even if no changes were made for menus (thanks Denny)
  • Fix – update method in Walker_Nav_Menu_Edit to be compatible with newer version of WP
  • Fix – example in Readme (thanks BramNL)

0.1

  • Plugin release. Included basic menu conditional statements