Personal Menus

David Bullock — 

Personal Menus is an optional feature available in Memberium that enables you to automatically change your theme’s menus on the fly depending on whether the viewer is logged in, and if they are logged in, which membership level they are.

How It Works

Memberium’s Personal Menus works by scanning the menu locations that are created by your theme and creating additional “virtual” versions of those menu locations. A virtual menu location is created for each of your membership levels, and for logged in users. The original menu location created by the menu is used by default and for logged out visitors.

Pro Tip
Administrator users will be presented with the standard logged in menu. They do not have tags and will not be given a membership level menu.

Virtual Menus can be easily identified. They are indented slightly from the main default menus.

You can assign custom menus to these virtual menu locations. When the visiting user matches that menu, it will be displayed instead of the standard menu. If no virtual menus are assigned, then the default menu is displayed.

How to Activate Personal Menus

Like our other features, Personal Menus is built into the Memberium core.

Pro Tip
Personal Menus implements a simple web interface based on the limits of the WordPress Nav Menu editor. It is not yet scalable to a large number of membership levels, or to use complex decisions to choose which virtual menus are displayed.

You can activate Personal Menus by doing the following steps:

Go to Memberium -> Settings in your WordPress pluginSelect the “Page Handling” tab

Set the “Personal Menus” switch to On

Click the Save button at the bottom of the screen.

That’s it! You’re all set.

You’ll see your new virtual menu locations appear when you go Appearance -> Menus in WordPress. Your new virtual menu locations will appear in two places in the menu editor.

The first place you can assign virtual menus is at the bottom of the “Edit Menu” page. You’ll see a series of checkboxes, by which you can assign your custom menu.

Personal Menu Editor

The second location is on the “Manage Locations” tab. You’ll see each regular menu location, as well as each virtual menu location.

Menu Location Editor

Theme Compatibility

Memberium Personal Menus are compatible with all themes that use standard menu locations.

Best Practices

Scaling to Large Numbers of Access Levels

Some sites contain large numbers of membership levels, which when combined with the number of menus defined in a theme can create a very large number of menus on the Menu Editor screens. For example, if your theme has four menu locations, and you have 20 membership levels, you would have 84 menu locations presented in your theme.In cases such as these, it’s often the case that only some membership levels affect the menus. Memberium provides two tools to deal with cases such as these.

First, on a per membership level basis, you can disable that membership’s use in Personal Menus, so that virtual menu locations are not created for this membership levels.

Second, you can use the PHP API directly as we cover below under the advanced topics.

Menu Naming

Coming Soon

Default Menus

Coming Soon

Advanced Techniques

Personal Menus provides a simple system for personalizing the menu assignment based on membership level, or whether the visitor is logged in or not. It doesn’t cover the breath and depth of possibilities that advanced users and sites may need.

Advanced capabilities are still possible through Memberium by using our PHP API and provided filters. Using this system, any menu can be easily replaced dynamically using any criteria you can dream up.

Examples of the possibilities include

  • Time of Day
  • Combinations of Tags or Membership Levels
  • IP Address
  • etc.

You can manipulate the Theme menus dynamically with your own code by hooking into our “memberium_personal_menus” filter. This filter will pass the name of the menu to your code, where you can change it to the name of the menu you wish to display using any logic you wish, and return the new menu name.

  • Was this Helpful?
  • YesNo