menu_slug = 'betterdocs-admin'; add_filter( 'manage_docs_posts_columns', array( $this, 'set_custom_edit_action_columns' ) ); add_action( 'admin_menu', array( $this, 'menu_page' ) ); add_filter( 'parent_file', array( $this, 'highlight_admin_menu' ) ); global $pagenow; if ($pagenow == 'edit-tags.php') { add_filter( 'submenu_file', array( $this, 'highlight_admin_submenu' ), 10, 2 ); } } public function set_custom_edit_action_columns($columns) { unset( $columns['comments'] ); return $columns; } public function betterdocs_menu_list() { $betterdocs_admin_pages = array( 'betterdocs' => array( 'page_title' => 'BetterDocs', 'menu_title' => 'BetterDocs', 'capability' => 'edit_docs', 'menu_slug' => $this->menu_slug, 'callback' => $this->betterdocs_admin_output(), 'icon_url' => BETTERDOCS_ADMIN_URL.'/assets/img/betterdocs-icon-white.svg', 'position' => 5 ), 'all_docs' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'All Docs', 'menu_title' => 'All Docs', 'text_domain' => 'betterdocs', 'capability' => 'edit_docs', 'menu_slug' => $this->menu_slug ), 'add_new' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'Add New', 'menu_title' => 'Add New', 'text_domain' => 'betterdocs', 'capability' => 'edit_docs', 'menu_slug' => 'post-new.php?post_type=docs' ), 'categories' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'Categories', 'menu_title' => 'Categories', 'text_domain' => 'betterdocs', 'capability' => 'manage_doc_terms', 'menu_slug' => 'edit-tags.php?taxonomy=doc_category&post_type=docs' ), 'tags' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'Tags', 'menu_title' => 'Tags', 'text_domain' => 'betterdocs', 'capability' => 'manage_doc_terms', 'menu_slug' => 'edit-tags.php?taxonomy=doc_tag&post_type=docs' ), 'quick_setup' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'Quick Setup', 'menu_title' => 'Quick Setup', 'text_domain' => 'betterdocs', 'capability' => 'delete_users', 'menu_slug' => 'betterdocs-setup', 'callback' => array( new BetterDocsSetupWizard(), 'plugin_setting_page' ) ), 'settings' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'Settings', 'menu_title' => 'Settings', 'text_domain' => 'betterdocs', 'capability' => 'edit_docs_settings', 'menu_slug' => 'betterdocs-settings', 'callback' => array( new betterdocs_settings(), 'settings_page' ) ), 'analytics' => array( 'parent_slug' => $this->menu_slug, 'page_title' => 'Analytics', 'menu_title' => 'Analytics', 'text_domain' => 'betterdocs', 'capability' => 'read_docs_analytics', 'menu_slug' => 'betterdocs-analytics', 'callback' => array( new betterdocs_settings(), 'analytics_page' ) ), ); return apply_filters( 'betterdocs_admin_menu' ,$betterdocs_admin_pages ); } /** * Admin Menu Page * * @return void */ public function menu_page() { foreach( $this->betterdocs_menu_list() as $key => $value ) { if( $key === 'betterdocs' ) { add_menu_page( $value['page_title'], $value['menu_title'], $value['capability'], $value['menu_slug'], $value['callback'], $value['icon_url'], $value['position'] ); } else { $parent_slug = isset( $value['parent_slug'] ) ? $value['parent_slug'] : ''; $page_title = isset( $value['page_title'] ) ? $value['page_title'] : ''; $text_domain = isset( $value['text_domain'] ) ? $value['text_domain'] : ''; $menu_title = isset( $value['menu_title'] ) ? $value['menu_title'] : ''; $capability = isset( $value['capability'] ) ? $value['capability'] : ''; $menu_slug = isset( $value['menu_slug'] ) ? $value['menu_slug'] : ''; $callback = isset( $value['callback'] ) ? $value['callback'] : ''; add_submenu_page( $parent_slug, __( $page_title, $text_domain ), __( $menu_title, $text_domain ), $capability, $menu_slug, $callback ); } } } public function highlight_admin_menu($parent_file) { global $current_screen; if( $this->menu_slug === 'betterdocs-admin' && in_array( $current_screen->id, array( 'edit-doc_tag', 'edit-doc_category' ) ) ) { $parent_file = 'betterdocs-admin'; } else { if( in_array( $current_screen->id, array( 'edit-doc_tag', 'edit-doc_category' ) ) ) { $parent_file = 'edit.php?post_type=docs'; } } return apply_filters('betterdocs_highlight_admin_menu', $parent_file); } public function highlight_admin_submenu($submenu_file) { global $current_screen, $pagenow; if ( $current_screen->post_type == 'docs' ) { if ( $pagenow == 'post.php' ) { $submenu_file = 'edit.php?post_type=docs'; } if ( $pagenow == 'post-new.php' ) { $submenu_file = 'post-new.php?post_type=docs'; } if( $current_screen->id === 'edit-doc_category' ) { $submenu_file = 'edit-tags.php?taxonomy=doc_category&post_type=docs'; } if( $current_screen->id === 'edit-doc_tag' ) { $submenu_file = 'edit-tags.php?taxonomy=doc_tag&post_type=docs'; } if( $current_screen->id === 'edit-knowledge_base' ) { $submenu_file = 'edit-tags.php?taxonomy=knowledge_base&post_type=docs'; } } if( 'betterdocs_page_betterdocs-settings' == $current_screen->id ) { $submenu_file = 'betterdocs-settings'; } if( 'betterdocs_page_betterdocs-setup' == $current_screen->id ) { $submenu_file = 'betterdocs-setup'; } return apply_filters('betterdocs_highlight_admin_submenu', $submenu_file); } public function header_template() { $html = '