function filter_WpNavMenuObjects($items, $args) { if (am4PluginsManager::skipProtection()) { return $items; } $access = new am4UserAccess(); $type = $access->isLoggedIn() ? "user" : "guest"; foreach ($items as $id => $i) { switch ($i->object) { case 'page': case 'post': // get_page and get_post are identical; $page = get_page($i->object_id); $settings = $this->getPostAccess($page); if ($settings->{'only_guest'}) { if ($type != 'guest') { unset($items['id']); } } else { if ($settings->{'protected'} && !$this->haveAccess($this->getPostRequirements($page), $settings) && $settings->{$type . '_action_menu'} == 'hide') { unset($items[$id]); } } break; case 'category': $settings = new am4_Settings_Category($i->object_id); if ($settings->{'protected'} && !$this->haveAccess(am4AccessRequirement::createRequirements($settings->{'access'}), $settings) && $settings->{$type . '_action_cat_menu'} == 'hide') { unset($items[$id]); } break; } } return $items; }
function filter_WpNavMenuObjects($items, $args) { if (current_user_can("manage_options")) { return $items; } $access = new am4UserAccess(); $type = $access->isLoggedIn() ? "user" : "guest"; foreach ($items as $id => $i) { switch ($i->object) { case 'page': $page = get_page($i->object_id); $settings = $this->getPostAccess($page); if ($settings['protected'] && !$access->anyTrue($this->getPostRequirements($page)) && $settings[$type . '_action_menu'] == 'hide') { unset($items[$id]); } break; case 'category': $cat_settings = get_option(AM4_CAT_OPTION); $settings = $cat_settings[$i->object_id]; if (!$settings) { break; } if ($settings['protected'] && !$access->anyTrue(am4AccessRequirement::createRequirements($settings['access'])) && $settings[$type . '_action_cat_menu'] == 'hide') { unset($items[$id]); } break; } } return $items; }