dashboard_callback = $dashboard_callback; $this->settings_callback = $settings_callback; $this->articles_callback = $articles_callback; $this->cost_callback = $cost_callback; } /** * Register all admin menu pages. * * Creates the main menu (Analytics Dashboard) and three submenus * (Settings, Articles, Cost Dashboard). * * @return void */ public function add_admin_menu(): void { // Main menu — Analytics Dashboard. add_menu_page( __( 'Peptide News', 'peptide-news' ), __( 'Peptide News', 'peptide-news' ), 'manage_options', 'peptide-news-dashboard', $this->dashboard_callback, 'dashicons-rss', 30 ); // Sub-menu — Settings. add_submenu_page( 'peptide-news-dashboard', __( 'Settings', 'peptide-news' ), __( 'Settings', 'peptide-news' ), 'manage_options', 'peptide-news-settings', $this->settings_callback ); // Sub-menu — Articles. add_submenu_page( 'peptide-news-dashboard', __( 'Articles', 'peptide-news' ), __( 'Articles', 'peptide-news' ), 'manage_options', 'peptide-news-articles', $this->articles_callback ); // Sub-menu — Cost Dashboard. add_submenu_page( 'peptide-news-dashboard', __( 'LLM Costs', 'peptide-news' ), __( 'LLM Costs', 'peptide-news' ), 'manage_options', 'peptide-news-costs', $this->cost_callback ); } }