/** * Construct plugin's settings page URL. * * @author Vova Feldman (@svovaf) * @since 1.0.4 * * @param string $page * @param array $params * * @return string */ function _get_admin_page_url($page = '', $params = array()) { if (empty($page) && !$this->_menu->is_top_level()) { // If not a Top-Level menu and asking for main settings page, // then try to replicate plugin's main setting original page URL. switch ($this->_menu->get_type()) { case 'tools': return add_query_arg(array('page' => $this->_menu->get_raw_slug()), admin_url('tools.php')); case 'settings': return add_query_arg(array('page' => $this->_menu->get_raw_slug()), admin_url('options-general.php')); } } if ($this->_menu->is_cpt()) { if (empty($page) && $this->is_activation_mode()) { return add_query_arg(array_merge($params, array('page' => $this->_menu->get_raw_slug())), admin_url('admin.php', 'admin')); } else { if (!empty($page)) { $params['page'] = trim("{$this->_menu->get_raw_slug()}-{$page}", '-'); } return add_query_arg(array_merge($params, array('post_type' => $this->_menu->get_raw_slug())), admin_url('edit.php', 'admin')); } } else { if (false === strpos($this->_menu->get_raw_slug(), '.php?')) { return add_query_arg(array_merge($params, array('page' => trim("{$this->_menu->get_raw_slug()}-{$page}", '-'))), admin_url('admin.php', 'admin')); } else { return add_query_arg(array_merge($params, array('page' => trim("{$this->_slug}-{$page}", '-'))), admin_url('admin.php', 'admin')); } } }