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 '';
}
// 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;
}
}