/** * Initialize WR MegaMenu admin menu. * * @return void */ public static function init() { global $pagenow; // Get product information $plugin = WR_Megamenu_Product_Info::get(WR_MEGAMENU_IDENTIFIED_NAME); // Generate menu title $menu_title = __('WR MegaMenu', WR_MEGAMENU_TEXTDOMAIN); if (isset($plugin['Available_Update']) && $plugin['Available_Update'] && ('admin.php' != $pagenow || !isset($_GET['page']) || !in_array($_GET['page'], self::$pages))) { $menu_title .= " <span class='wr-available-updates update-plugins count-{$plugin['Available_Update']}'><span class='pending-count'>{$plugin['Available_Update']}</span></span>"; } $menu = array('page_title' => __($menu_title, WR_MEGAMENU_TEXTDOMAIN), 'menu_title' => __('Settings', WR_MEGAMENU_TEXTDOMAIN), 'capability' => 'manage_options', 'menu_slug' => 'wr-megamenu-settings', 'function' => array(__CLASS__, 'settings')); /* WR_Megamenu_Init_Admin_Menu::add( $menu , 'edit.php?post_type=wr_megamenu_profile' ); */ if (@$plugin['Addons']) { // Generate menu title $menu_title = __('Add-ons', WR_MEGAMENU_TEXTDOMAIN); if (@$plugin['Available_Update'] && ('admin.php' == $pagenow && isset($_GET['page']) && in_array($_GET['page'], self::$pages))) { $menu_title .= " <span class='wr-available-updates update-plugins count-{$plugin['Available_Update']}'><span class='pending-count'>{$plugin['Available_Update']}</span></span>"; } // Update admin menus $menu = array('page_title' => __('WR MegaMenu - Add-ons', WR_MEGAMENU_TEXTDOMAIN), 'menu_title' => $menu_title, 'capability' => 'manage_options', 'menu_slug' => 'wr-menu-addons', 'function' => array(__CLASS__, 'addons')); WR_Megamenu_Init_Admin_Menu::add($menu, 'edit.php?post_type=wr_megamenu_profile'); } WR_Megamenu_Init_Admin_Menu::add(array('page_title' => __('WR MegaMenu - About', WR_MEGAMENU_TEXTDOMAIN), 'menu_title' => __('About', WR_MEGAMENU_TEXTDOMAIN), 'capability' => 'manage_options', 'menu_slug' => 'wr-megamenu-about-us', 'function' => array(__CLASS__, 'about_us')), 'edit.php?post_type=wr_megamenu_profile'); }
/** * Initialize WR Sample plugin. * * @return void */ public static function init() { global $wp_widget_factory, $mega_menu, $wr_megamenu_element, $wr_megamenu_widgets; // Init neccessary WR Library classes WR_Megamenu_Init_Admin_Menu::hook(); // Load required assets WR_Megamenu_Assets::init(); WR_Megamenu_Init_Assets::hook(); // Load update simulator WR_Megamenu_Update_Simulator::hook(); // Init element $wr_megamenu_element = new WR_Megamenu_Element(); $wr_megamenu_element->init(); // if (is_admin()) { $mega_menu = new WR_Megamenu_Core_Backend(); // Insert WooRockets banner global $pagenow; $post_type = ''; if ($pagenow == 'post-new.php' && isset($_REQUEST['post_type'])) { $post_type = $_REQUEST['post_type']; } elseif ($pagenow == 'post.php' && isset($_REQUEST['post'])) { $post_type = get_post_type($_REQUEST['post']); } if ($post_type == 'wr_megamenu_profile') { self::insert_banner(); } } else { // Process menu frontend $frontend = new WR_Megamenu_Core_Frontend(); $frontend->apply_megamenu(); } // Register 'admin_menu' action add_action('admin_menu', array(__CLASS__, 'admin_menu')); // Register 'wr_mm_installed_product' filter add_filter('wr_mm_installed_product', array(__CLASS__, 'register_product')); // Initialize widget support $wr_megamenu_widgets = !empty($wr_megamenu_widgets) ? $wr_megamenu_widgets : WR_Megamenu_Helpers_Functions::widgets(); }
/** * Manipulate WordPress admin menu. * * @return void */ public static function admin_menu() { global $menu, $submenu; // Filter menus to be registered self::$add = apply_filters('wr_register_admin_menu', self::$add); // Variable to hold menu position static $position; // Add menus foreach (self::$add as $entry) { if (isset($entry['parent_slug'])) { add_submenu_page($entry['parent_slug'], $entry['page_title'], $entry['menu_title'], $entry['capability'], $entry['menu_slug'], isset($entry['function']) ? $entry['function'] : ''); } else { // Calculate menu position if (!isset($entry['position']) || empty($entry['position'])) { if (!isset($position)) { $position = 50; } else { $position++; } } add_menu_page($entry['page_title'], $entry['menu_title'], $entry['capability'], $entry['menu_slug'], isset($entry['function']) && !empty($entry['function']) ? $entry['function'] : '', isset($entry['icon_url']) && !empty($entry['icon_url']) ? $entry['icon_url'] : '', isset($entry['position']) && !empty($entry['position']) ? $entry['position'] : $position); } } // Remove menus foreach (self::$remove as $menu_slug => $parent_slug) { if ($parent_slug) { remove_submenu_page($parent_slug, $menu_slug); } else { remove_menu_page($menu_slug); } } // Replace menus if (count(self::$replace)) { foreach (self::$replace as $label => $data) { // Get parent slug $parent_slug = array_keys($data); $parent_slug = array_shift($parent_slug); if ($parent_slug && isset($submenu[$parent_slug])) { foreach ($submenu[$parent_slug] as $key => $value) { if ($value[0] === $label) { foreach ($data[$parent_slug] as $k => $v) { $submenu[$parent_slug][$key][$k] = $v; } } } } elseif ($parent_slug === 0) { foreach ($menu as $key => $value) { if ($value[0] === $label) { foreach ($data[0] as $k => $v) { $menu[$key][$k] = $v; } } } } } } }