Title: Use variable set by another plugin?
Last modified: August 24, 2016

---

# Use variable set by another plugin?

 *  [flippertie](https://wordpress.org/support/users/flippertie/)
 * (@flippertie)
 * [11 years, 1 month ago](https://wordpress.org/support/topic/use-variable-set-by-another-plugin/)
 * Hello! I’m using a plugin ‘Restricted Site Access’ which sets a variable **$is_restricted**
   based on a whitelist of allowed IPs.
 * I’m trying to use that variable, plus ‘Nav Menu Roles’ to show/hide some menu
   items if user is logged in OR on the whitelist (ie $is_restricted is false).
 * Using code from a couple of your other support threads I’ve come up with this:
   ‘/*
   Add custom role to Nav Menu Roles menu list */ function kia_new_roles( $roles){
   $roles[‘restricted’] = ‘Restricted’; return $roles; } add_filter( ‘nav_menu_roles’,‘
   kia_new_roles’ );
 * /*
    * Change visibilty of each menu item * param: $visible boolean * param: $
   item object, the complete menu object. Nav Menu Roles adds its info to $item-
   >roles * $item->roles can be “in” (all logged in), “out” (all logged out) or 
   an array of specific roles * return boolean */ function kia_item_visibility( 
   $visible, $item ){ if( isset( $item->roles ) && is_array( $item->roles ) && in_array(‘
   restricted’, $item->roles ) ){ if ($is_restricted && ! is_user_logged_in() ){
   $visible = true; } else { $visible = false; } } return $visible; } add_filter(‘
   nav_menu_roles_item_visibility’, ‘kia_item_visibility’, 10, 2 ); ‘
 * The role ‘Restricted’ is added to menu items but seems to have no effect. Adding
   or removing my IP from the whitelist (which changes $is_restricted) also has 
   no effect on the menu.
 * Can you tell me whether this approach is likely to work? My php is very limited
   and I don’t know if I’m wasting my time.
 * NB I have used $is_restricted successfully in another function to allow access
   to pages like this :
 * ‘add_filter( ‘restricted_site_access_is_restricted’, ‘my_restricted_check’, 10,
   2 );
 * function my_restricted_check( $is_restricted, $wp ) {
    if ( $wp->query_vars[‘
   pagename’] == ‘contact’ || $wp->query_vars[‘name’] == ‘aplr-2013-volume-21-number-
   1-2’ ) $is_restricted = false; return $is_restricted; }’
 * [https://wordpress.org/plugins/nav-menu-roles/](https://wordpress.org/plugins/nav-menu-roles/)

Viewing 4 replies - 1 through 4 (of 4 total)

 *  Plugin Author [HelgaTheViking](https://wordpress.org/support/users/helgatheviking/)
 * (@helgatheviking)
 * [11 years ago](https://wordpress.org/support/topic/use-variable-set-by-another-plugin/#post-6002251)
 * Sorry that I missed this thread. I have been travelling recently and didn’t have
   much access to the internet.
 * I can’t really tell you if your approach is likely to work or not. It seems like
   a good implementation of the “custom roles” from the FAQ, but the best bet is
   to try it.
 *  Thread Starter [flippertie](https://wordpress.org/support/users/flippertie/)
 * (@flippertie)
 * [11 years ago](https://wordpress.org/support/topic/use-variable-set-by-another-plugin/#post-6002252)
 * I did use custom roles to add “Restricted” to the menu options – but I couldn’t
   work out how to use the $is_restricted variable to actually hide the menu items.
 * The logic is simple –
 * “if (logged in) or ($is_restricted = false) Show the item – else hide it”
    but
   i couldn’t make it work. My php is not much better than cut and paste – and I
   was missing something.
 * Anyway – thanks for taking the time to reply.
 *  Plugin Author [HelgaTheViking](https://wordpress.org/support/users/helgatheviking/)
 * (@helgatheviking)
 * [10 years, 12 months ago](https://wordpress.org/support/topic/use-variable-set-by-another-plugin/#post-6002254)
 * It probably depends on when `$is_restricted` is defined and whether it is global.
   You might try globally declaring it in your function before trying to use it.
   Right now you are only defining it locally to your function so it will never 
   work as expected.
 * `global $is_restricted;`
 *  Thread Starter [flippertie](https://wordpress.org/support/users/flippertie/)
 * (@flippertie)
 * [10 years, 12 months ago](https://wordpress.org/support/topic/use-variable-set-by-another-plugin/#post-6002255)
 * Thanks for replying. I’ll read up on global and local declarations and gave another
   go.

Viewing 4 replies - 1 through 4 (of 4 total)

The topic ‘Use variable set by another plugin?’ is closed to new replies.

 * ![](https://ps.w.org/nav-menu-roles/assets/icon-256x256.png?rev=2336319)
 * [Nav Menu Roles](https://wordpress.org/plugins/nav-menu-roles/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/nav-menu-roles/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/nav-menu-roles/)
 * [Active Topics](https://wordpress.org/support/plugin/nav-menu-roles/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/nav-menu-roles/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/nav-menu-roles/reviews/)

 * 4 replies
 * 2 participants
 * Last reply from: [flippertie](https://wordpress.org/support/users/flippertie/)
 * Last activity: [10 years, 12 months ago](https://wordpress.org/support/topic/use-variable-set-by-another-plugin/#post-6002255)
 * Status: not resolved