id) && strpos($screen->id, 'acadlix') !== false) { // Link to the unfiltered review form on WordPress.org (Required by WP Guidelines) $rating_url = 'https://wordpress.org/support/plugin/acadlix/reviews/#new-post'; // Create the rating message $rating_message = sprintf( /* translators: %s: URL to the plugin review form on WordPress.org */ __('If you enjoy using Acadlix, please leave us a ★★★★★ rating. A huge thanks in advance!', 'acadlix'), esc_url($rating_url) ); // Replace the default footer text with the new message return '' . wp_kses_post($rating_message) . ''; } // Return the default footer text for all other WordPress admin pages return $footer_text; } protected function acadlix_admin_screen_list() { return [ 'acadlix', 'acadlix_lesson', 'acadlix_quiz', 'acadlix_order', 'acadlix_student', 'acadlix_setting', 'acadlix_addon', 'acadlix_design_studio', 'acadlix_review', 'acadlix_coupon', 'acadlix_tool', 'acadlix_course_students', 'acadlix_announcement', ]; } public function acadlix_maybe_disable_screen_options() { if (!isset($_GET['page'])) return; // phpcs:ignore $target_pages = $this->acadlix_admin_screen_list(); // your submenu slugs // Remove screen options for specific pages (built in react) if (in_array($_GET['page'], $target_pages, true)) { // phpcs:ignore add_filter('screen_options_show_screen', '__return_false'); } } public function load_submenu() { try { $this->submenu_courses(); $this->submenu_lessons(); $this->submenu_quiz(); $this->submenu_orders(); $this->submenu_categories(); $this->submenu_tags(); $this->submenu_settings(); $this->submenu_addon(); $this->submenu_student(); $this->submenu_design_studio(); $this->submenu_reviews(); $this->submenu_coupon(); $this->submenu_tools(); if (function_exists('acadlix') && !acadlix()->pro) { $this->submenu_upgrade(); } $this->submenu_course_student(); $this->submenu_announcement(); } catch (Throwable $e) { error_log('[Acadlix Menu Error] Failed loading submenus: ' . $e->getMessage()); } } public function init_admin_menu() { $this->load_submenu(); $submenus = apply_filters('acadlix_admin_submenus', $this->_submenus); usort($submenus, fn($a, $b) => $b->get_position() <=> $a->get_position()); // Parent Menu Page (Home) if ($this->submenu_home()) { $this->submenu_home()->add_submenu(); } // Submenu Pages if (!empty($submenus)) { foreach ($submenus as $submenu) { if (is_object($submenu) && method_exists($submenu, 'add_submenu')) { $submenu->add_submenu(); } } } } public function submenu_home() { if (is_null($this->home)) { $this->home = new Submenu_Home(); } return $this->home; } public function submenu_courses() { if (is_null($this->courses)) { $this->courses = new Submenu_Courses(); $this->_submenus[] = $this->courses; } return $this->courses; } public function submenu_lessons() { if (is_null($this->lessons)) { $this->lessons = new Submenu_Lessons(); $this->_submenus[] = $this->lessons; } return $this->lessons; } public function submenu_quiz() { if (is_null($this->quiz)) { $this->quiz = new Submenu_Quiz(); $this->_submenus[] = $this->quiz; } return $this->quiz; } public function submenu_orders() { if (is_null($this->orders)) { $this->orders = new Submenu_Orders(); $this->_submenus[] = $this->orders; } return $this->orders; } public function submenu_categories() { if (is_null($this->categories)) { $this->categories = new Submenu_Categories(); $this->_submenus[] = $this->categories; } return $this->categories; } public function submenu_tags() { if (is_null($this->tags)) { $this->tags = new Submenu_Tags(); $this->_submenus[] = $this->tags; } return $this->tags; } public function submenu_settings() { if (is_null($this->settings)) { $this->settings = new Submenu_Settings(); $this->_submenus[] = $this->settings; } return $this->settings; } public function submenu_addon() { if (is_null($this->addon)) { $this->addon = new Submenu_Addon(); $this->_submenus[] = $this->addon; } return $this->addon; } public function submenu_student() { if (is_null($this->student)) { $this->student = new Submenu_Student(); $this->_submenus[] = $this->student; } return $this->student; } public function submenu_design_studio() { if (is_null($this->design_studio)) { $this->design_studio = new Submenu_Design_Studio(); $this->_submenus[] = $this->design_studio; } return $this->design_studio; } public function submenu_reviews() { if (is_null($this->reviews)) { $this->reviews = new Submenu_Reviews(); $this->_submenus[] = $this->reviews; } return $this->reviews; } public function submenu_coupon() { if (is_null($this->coupon)) { $this->coupon = new Submenu_Coupon(); $this->_submenus[] = $this->coupon; } return $this->coupon; } public function submenu_tools() { if (is_null($this->tools)) { $this->tools = new Submenu_Tools(); $this->_submenus[] = $this->tools; } return $this->tools; } public function submenu_upgrade() { if (is_null($this->upgrade)) { $this->upgrade = new Submenu_Upgrade(); $this->_submenus[] = $this->upgrade; } return $this->upgrade; } public function submenu_course_student() { if (is_null($this->course_student)) { $this->course_student = new Submenu_Course_Student(); $this->_submenus[] = $this->course_student; } return $this->course_student; } public function submenu_announcement() { if (is_null($this->announcement)) { $this->announcement = new Submenu_Announcement(); $this->_submenus[] = $this->announcement; } return $this->announcement; } public function acadlix_set_active_menu_class($parent_file) { global $submenu_file, $current_screen; if (!isset($current_screen)) { return $parent_file; } if (defined('ACADLIX_COURSE_CPT') && $current_screen->post_type == ACADLIX_COURSE_CPT) { $parent_file = defined('ACADLIX_SLUG') ? ACADLIX_SLUG : 'acadlix'; if ($current_screen->base == 'post' && $current_screen->action == 'add') { $submenu_file = 'edit.php?post_type=' . ACADLIX_COURSE_CPT; } } if (defined('ACADLIX_COURSE_CATEGORY_TAXONOMY') && $current_screen->taxonomy == ACADLIX_COURSE_CATEGORY_TAXONOMY) { $parent_file = defined('ACADLIX_SLUG') ? ACADLIX_SLUG : 'acadlix'; } if (defined('ACADLIX_COURSE_TAG_TAXONOMY') && $current_screen->taxonomy == ACADLIX_COURSE_TAG_TAXONOMY) { $parent_file = defined('ACADLIX_SLUG') ? ACADLIX_SLUG : 'acadlix'; } return $parent_file; } public function plugin_page() { if (defined('ACADLIX_TEMPLATE_PATH') && file_exists(ACADLIX_TEMPLATE_PATH . 'app.php')) { require_once ACADLIX_TEMPLATE_PATH . 'app.php'; } } public static function instance() { if (is_null(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } }