diff --git a/includes/core/class-access.php b/includes/core/class-access.php index a647caaa..e789523b 100644 --- a/includes/core/class-access.php +++ b/includes/core/class-access.php @@ -944,10 +944,6 @@ if ( ! class_exists( 'um\core\Access' ) ) { if ( empty( $menu_items ) ) return $menu_items; - if ( current_user_can( 'administrator' ) ) { - return $menu_items; - } - $filtered_items = array(); //other filter @@ -968,7 +964,13 @@ if ( ! class_exists( 'um\core\Access' ) ) { $filtered_items[] = $menu_item; continue; } else { - //if not single query when exclude if set _um_access_hide_from_queries + + if ( current_user_can( 'administrator' ) ) { + $filtered_items[] = $menu_item; + continue; + } + + //if not single query when exclude if set _um_access_hide_from_queries if ( empty( $restriction['_um_access_hide_from_queries'] ) ) { $filtered_items[] = $menu_item; continue; @@ -978,6 +980,11 @@ if ( ! class_exists( 'um\core\Access' ) ) { //if post for logged in users and user is not logged in if ( is_user_logged_in() ) { + if ( current_user_can( 'administrator' ) ) { + $filtered_items[] = $menu_item; + continue; + } + $custom_restrict = $this->um_custom_restriction( $restriction ); if ( empty( $restriction['_um_access_roles'] ) || false === array_search( '1', $restriction['_um_access_roles'] ) ) { diff --git a/includes/core/um-filters-navmenu.php b/includes/core/um-filters-navmenu.php index 95e89257..159cafc9 100644 --- a/includes/core/um-filters-navmenu.php +++ b/includes/core/um-filters-navmenu.php @@ -39,10 +39,6 @@ if ( ! is_admin() ) { return $menu_items; } - if ( current_user_can( 'administrator' ) ) { - return $menu_items; - } - um_fetch_user( get_current_user_id() ); $filtered_items = array(); @@ -68,12 +64,16 @@ if ( ! is_admin() ) { case 2: if ( is_user_logged_in() && ! empty( $roles ) ) { - $current_user_roles = um_user( 'roles' ); - if ( empty( $current_user_roles ) ) { - $visible = false; - } else { - $visible = ( count( array_intersect( $current_user_roles, (array)$roles ) ) > 0 ) ? true : false; - } + if ( current_user_can( 'administrator' ) ) { + $visible = true; + } else { + $current_user_roles = um_user( 'roles' ); + if ( empty( $current_user_roles ) ) { + $visible = false; + } else { + $visible = ( count( array_intersect( $current_user_roles, (array)$roles ) ) > 0 ) ? true : false; + } + } } else { $visible = is_user_logged_in() ? true : false; }