/** * Call this only if you are actually showing the page. */ public function initialize() { $page_hook = wpcf_admin_add_submenu_page(array('menu_title' => $this->get_title(), 'function' => array($this, 'page_handler'), 'capability_filter' => 'wpcf_tfc_view'), wpcf_getget('page')); // I hate having to do this. Refactor! require_once WPCF_INC_ABSPATH . '/fields.php'; wpcf_fields_contol_common_resources(); add_action("load-{$page_hook}", array($this, 'add_screen_options')); }
/** * Call this only if you are actually showing the page. */ public function initialize() { $hook = wpcf_admin_add_submenu_page(array('menu_title' => $this->get_menu_title(), 'function' => array($this, 'page_handler'), 'capability' => WPCF_TERM_FIELD_EDIT), wpcf_getget('page')); $load_page_action = 'load-' . $hook; // Prepare form, which includes saving data and optionally redirecting to the edit page with group ID // as GET parameter. That's why it must be executed earlier than as a menu page callback. add_action($load_page_action, array($this, 'prepare_form_maybe_redirect')); // This one handles enqueuing script and styles. Originally it is meant for post fields and it also probably // does some things that are not needed now. add_action($load_page_action, 'wpcf_admin_enqueue_group_edit_page_assets'); wpcf_admin_plugin_help($hook, self::PAGE_NAME); }
function setup_installer() { if (isset($_GET['page']) && 'installer' == $_GET['page']) { wpcf_admin_add_submenu_page(array('menu_title' => __('Installer', 'wpcf'), 'menu_slug' => 'installer', 'function' => 'installer_content')); } }
/** * add Getting Started to menu */ public function add_getting_started_to_admin_menu() { $menu = array('page_title' => __('What kind of site are you building?', 'wpcf'), 'menu_title' => __('Getting Started', 'wpcf'), 'menu_slug' => basename(dirname(dirname(__FILE__))) . '/marketing/getting-started/index.php', 'hook' => 'wpcf_marketing', 'load_hook' => 'wpcf_marketing_hook'); wpcf_admin_add_submenu_page($menu); }
function wpcf_admin_add_submenu_page($menu, $menu_slug = null, $menu_parent = 'wpcf') { if (!is_admin()) { return; } $menu_slug = array_key_exists('menu_slug', $menu) ? $menu['menu_slug'] : $menu_slug; $capability = array_key_exists('capability', $menu) ? $menu['capability'] : 'manage_options'; $wpcf_capability = apply_filters('wpcf_capability', $capability, $menu, $menu_slug); $wpcf_capability = apply_filters('wpcf_capability' . $menu_slug, $capability, $menu, $menu_slug); /** * allow change capability by filter * full list https://goo.gl/OJYTvl */ if (isset($menu['capability_filter'])) { $wpcf_capability = apply_filters($menu['capability_filter'], $wpcf_capability, $menu, $menu_slug); } /** * add submenu */ $hook = add_submenu_page($menu_parent, isset($menu['page_title']) ? $menu['page_title'] : $menu['menu_title'], $menu['menu_title'], $wpcf_capability, $menu_slug, array_key_exists('function', $menu) ? $menu['function'] : null); // For given menu slug, publish the final hook name in case we need it somewhere. do_action("wpcf_admin_add_submenu_page_{$menu_slug}", $hook); if (!empty($menu_slug)) { wpcf_admin_plugin_help($hook, $menu_slug); } /** * add action */ if (!array_key_exists('load_hook', $menu) && array_key_exists('function', $menu) && is_string($menu['function'])) { $menu['load_hook'] = sprintf('%s_hook', $menu['function']); } if (!empty($menu['load_hook']) && function_exists($menu['load_hook'])) { $action = sprintf('load-%s', array_key_exists('hook', $menu) ? $menu['hook'] : $hook); add_action($action, $menu['load_hook']); } /** * add submenu to submenu */ if (array_key_exists('submenu', $menu)) { foreach ($menu['submenu'] as $submenu_slug => $submenu) { wpcf_admin_add_submenu_page($submenu, $submenu_slug, $hook); } } return $hook; }
/** * Teaser menu hook. */ function wpcf_access_teaser_admin_menu() { $hook = wpcf_admin_add_submenu_page(array('page_title' => __('Access Control and User Roles', 'wpcf'), 'menu_title' => __('Access Control and User Roles', 'wpcf'), 'menu_slug' => 'wpcf-access', 'function' => 'wpcf_access_teaser_admin_menu_page', 'load_hook' => 'wpcf_access_teaser_admin_menu_load')); }
function setup_installer() { wpcf_admin_add_submenu_page(array('page_title' => __('Installer', 'wpcf'), 'menu_title' => __('Installer', 'wpcf'), 'menu_slug' => 'installer', 'function' => 'installer_content')); }
function wpcf_admin_add_submenu_page($menu, $menu_slug = null, $menu_parent = 'wpcf') { if (!is_admin()) { return; } $wpcf_capability = apply_filters('wpcf_capability', 'manage_options'); $menu_slug = array_key_exists('menu_slug', $menu) ? $menu['menu_slug'] : $menu_slug; /** * add submenu */ $hook = add_submenu_page($menu_parent, isset($menu['page_title']) ? $menu['page_title'] : $menu['menu_title'], $menu['menu_title'], $wpcf_capability, $menu_slug, array_key_exists('function', $menu) ? $menu['function'] : null); if (!empty($menu_slug)) { wpcf_admin_plugin_help($hook, $menu_slug); } /** * add action */ if (!array_key_exists('load_hook', $menu) && array_key_exists('function', $menu)) { $menu['load_hook'] = sprintf('%s_hook', $menu['function']); } if (!empty($menu['load_hook']) && function_exists($menu['load_hook'])) { $action = sprintf('load-%s', array_key_exists('hook', $menu) ? $menu['hook'] : $hook); add_action($action, $menu['load_hook']); } /** * add submenu to submenu */ if (array_key_exists('submenu', $menu)) { foreach ($menu['submenu'] as $submenu_slug => $submenu) { wpcf_admin_add_submenu_page($submenu, $submenu_slug, $hook); } } return $hook; }
/** * add Getting Started to menu */ public function add_getting_started_to_admin_menu() { if (!isset($_REQUEST['page'])) { return; } $slug = basename(dirname(dirname(dirname(__FILE__)))) . '/marketing/getting-started/index.php'; if ($_REQUEST['page'] != $slug) { return; } $menu = array('page_title' => __('What kind of site are you building?', 'wpcf'), 'menu_title' => __('Getting Started', 'wpcf'), 'menu_slug' => $slug, 'hook' => 'wpcf_marketing', 'load_hook' => 'wpcf_marketing_hook'); wpcf_admin_add_submenu_page($menu); }
/** * Teaser menu hook. */ function wpcf_access_teaser_admin_menu() { if (isset($_GET['page']) && 'wpcf-access' == $_GET['page']) { $hook = wpcf_admin_add_submenu_page(array('menu_title' => __('Access', 'wpcf'), 'menu_slug' => 'wpcf-access', 'function' => 'wpcf_access_teaser_admin_menu_page', 'load_hook' => 'wpcf_access_teaser_admin_menu_load')); } }