/** * admin_menu hook. */ function wpcf_admin_menu_hook() { $wpcf_capability = apply_filters('wpcf_capability', WPCF_CUSTOM_POST_TYPE_VIEW); add_menu_page(__('Types', 'wpcf'), __('Types', 'wpcf'), $wpcf_capability, 'wpcf', 'wpcf_admin_menu_summary'); $subpages = wpcf_admin_menu_get_subpages(); foreach ($subpages as $menu_slug => $menu) { if (isset($menu['context']) && 'dashboard_only' == $menu['context']) { continue; } wpcf_admin_add_submenu_page($menu, $menu_slug); } if (isset($_GET['page'])) { $current_page = $_GET['page']; switch ($current_page) { /** * User Fields Control */ case 'wpcf-user-fields-control': wpcf_admin_add_submenu_page(array('menu_title' => __('User Field Control', 'wpcf'), 'function' => 'wpcf_admin_menu_user_fields_control', 'capability_filter' => 'wpcf_ufc_view'), 'wpcf-user-fields-control'); break; /** * Post Fields Control */ /** * Post Fields Control */ case 'wpcf-custom-fields-control': wpcf_admin_add_submenu_page(array('menu_title' => __('Post Field Control', 'wpcf'), 'function' => 'wpcf_admin_menu_custom_fields_control', 'capability_filter' => 'wpcf_cfc_view'), 'wpcf-custom-fields-control'); break; /** * Import/Export */ /** * Import/Export */ case 'wpcf-import-export': wpcf_admin_add_submenu_page(array('menu_title' => __('Import/Export', 'wpcf'), 'function' => 'wpcf_admin_menu_import_export'), 'wpcf-import-export'); break; /** * debug */ /** * debug */ case 'wpcf-debug-information': wpcf_admin_add_submenu_page(array('menu_title' => __('Debug Information', 'wpcf'), 'function' => 'wpcf_admin_menu_debug_information'), 'wpcf-debug-information'); break; /** * custom field grup */ /** * custom field grup */ case 'wpcf-edit': $title = isset($_GET['group_id']) ? __('Edit Group', 'wpcf') : __('Add New Post Field Group', 'wpcf'); $hook = wpcf_admin_add_submenu_page(array('menu_title' => $title, 'function' => 'wpcf_admin_menu_edit_fields', 'capability' => WPCF_CUSTOM_FIELD_VIEW), $current_page); add_action('load-' . $hook, 'wpcf_admin_menu_edit_fields_hook'); wpcf_admin_plugin_help($hook, 'wpcf-edit'); break; case 'wpcf-view-custom-field': $hook = wpcf_admin_add_submenu_page(array('menu_title' => __('View Post Field Group', 'wpcf'), 'function' => 'wpcf_admin_menu_edit_fields', 'capability' => WPCF_CUSTOM_FIELD_VIEW), $current_page); wpcf_admin_plugin_help($hook, 'wpcf-edit'); break; /** * custom post */ /** * custom post */ case 'wpcf-edit-type': $title = __('Add New Post Type', 'wpcf'); if (isset($_GET['wpcf-post-type'])) { $title = __('Edit Post Type', 'wpcf'); } $hook = wpcf_admin_add_submenu_page(array('menu_title' => $title, 'function' => 'wpcf_admin_menu_edit_type', 'capability' => WPCF_CUSTOM_FIELD_EDIT), $current_page); add_action('load-' . $hook, 'wpcf_admin_menu_edit_type_hook'); wpcf_admin_plugin_help($hook, 'wpcf-edit-type'); break; case 'wpcf-view-type': $hook = wpcf_admin_add_submenu_page(array('menu_title' => __('View Post Type', 'wpcf'), 'function' => 'wpcf_admin_menu_edit_type', 'capability' => WPCF_CUSTOM_FIELD_VIEW), $current_page); add_action('load-' . $hook, 'wpcf_admin_menu_edit_type_hook'); wpcf_admin_plugin_help($hook, 'wpcf-edit-type'); break; case 'wpcf-edit-tax': $title = isset($_GET['wpcf-tax']) ? __('Edit Taxonomy', 'wpcf') : __('Add New Taxonomy', 'wpcf'); $hook = wpcf_admin_add_submenu_page(array('menu_title' => $title, 'function' => 'wpcf_admin_menu_edit_tax', 'capability' => WPCF_CUSTOM_TAXONOMY_EDIT), $current_page); add_action('load-' . $hook, 'wpcf_admin_menu_edit_tax_hook'); wpcf_admin_plugin_help($hook, 'wpcf-edit-tax'); break; case 'wpcf-view-tax': $hook = wpcf_admin_add_submenu_page(array('menu_title' => __('View Taxonomy', 'wpcf'), 'function' => 'wpcf_admin_menu_edit_tax', 'capability' => WPCF_CUSTOM_TAXONOMY_VIEW), $current_page); add_action('load-' . $hook, 'wpcf_admin_menu_edit_tax_hook'); wpcf_admin_plugin_help($hook, 'wpcf-edit-tax'); break; /** * user meta fields */ /** * user meta fields */ case 'wpcf-edit-usermeta': $title = isset($_GET['group_id']) ? __('Edit User Field Group', 'wpcf') : __('Add New User Field Group', 'wpcf'); $hook = wpcf_admin_add_submenu_page(array('menu_title' => $title, 'function' => 'wpcf_admin_menu_edit_user_fields', 'capability' => WPCF_USER_META_FIELD_EDIT), $current_page); wpcf_admin_plugin_help($hook, 'wpcf-edit-usermeta'); break; case 'wpcf-view-usermeta': $hook = wpcf_admin_add_submenu_page(array('menu_title' => __('View User Field Group', 'wpcf'), 'function' => 'wpcf_admin_menu_edit_user_fields', 'capability' => WPCF_USER_META_FIELD_VIEW), $current_page); wpcf_admin_plugin_help($hook, 'wpcf-edit-usermeta'); break; case WPCF_Page_Edit_Termmeta::PAGE_NAME: // Initialize the page. /** @var WPCF_Page_Edit_Termmeta $termmeta_page */ $termmeta_page = WPCF_Page_Edit_Termmeta::get_instance(); $termmeta_page->initialize(); break; case WPCF_Page_Control_Termmeta::PAGE_NAME: // Initialize by creating an instance. /** @var WPCF_Page_Control_Termmeta $term_field_control_page */ $term_field_control_page = WPCF_Page_Control_Termmeta::get_instance(); $term_field_control_page->initialize(); break; } } // Check if migration from other plugin is needed if (class_exists('Acf') && !class_exists('acf_pro') || defined('CPT_VERSION')) { $hook = add_submenu_page('wpcf', __('Migration', 'wpcf'), __('Migration', 'wpcf'), 'manage_options', 'wpcf-migration', 'wpcf_admin_menu_migration'); add_action('load-' . $hook, 'wpcf_admin_menu_migration_hook'); wpcf_admin_plugin_help($hook, 'wpcf-migration'); } do_action('wpcf_menu_plus'); // remove the repeating Types submenu remove_submenu_page('wpcf', 'wpcf'); }
/** * Add legacy menu pages. * * This is indirectly hooked to toolset_filter_register_menu_pages through the Types_Admin_Menu controller. * * @param $pages * @return mixed * @since 2.0 */ function wpcf_admin_toolset_register_menu_pages($pages) { if (!apply_filters('types_register_pages', true)) { return $pages; } require_once WPCF_ABSPATH . '/help.php'; $current_page = ''; if (isset($_GET['page'])) { $current_page = $_GET['page']; } $pages['wpcf-cpt'] = array('slug' => 'wpcf-cpt', 'menu_title' => __('Post Types', 'wpcf'), 'page_title' => __('Post Types', 'wpcf'), 'callback' => 'wpcf_admin_menu_summary_cpt', 'capability_filter' => 'wpcf_cpt_view', 'capability' => WPCF_CUSTOM_POST_TYPE_VIEW); $pages['wpcf-cpt']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-cpt']); $pages['wpcf-cpt']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-cpt']); $pages['wpcf-cpt']['contextual_help_legacy'] = wpcf_admin_help('wpcf-cpt'); $pages['wpcf-cpt']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; if ($current_page == 'wpcf-edit-type') { $pages['wpcf-edit-type'] = array('slug' => 'wpcf-edit-type', 'menu_title' => isset($_GET['wpcf-post-type']) ? __('Edit Post Type', 'wpcf') : __('Add New Post Type', 'wpcf'), 'page_title' => isset($_GET['wpcf-post-type']) ? __('Edit Post Type', 'wpcf') : __('Add New Post Type', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_type', 'capability' => WPCF_CUSTOM_FIELD_EDIT, 'load_hook' => 'wpcf_admin_menu_edit_type_hook'); $pages['wpcf-edit-type']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-edit-type']); $pages['wpcf-edit-type']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-edit-type']); $pages['wpcf-edit-type']['contextual_help_legacy'] = wpcf_admin_help('wpcf-edit-type'); $pages['wpcf-edit-type']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } if ($current_page == 'wpcf-view-type') { $pages['wpcf-view-type'] = array('slug' => 'wpcf-view-type', 'menu_title' => __('View Post Type', 'wpcf'), 'page_title' => __('View Post Type', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_type', 'capability' => WPCF_CUSTOM_FIELD_VIEW, 'load_hook' => 'wpcf_admin_menu_edit_type_hook'); $pages['wpcf-view-type']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-view-type']); $pages['wpcf-view-type']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-view-type']); $pages['wpcf-view-type']['contextual_help_legacy'] = wpcf_admin_help('wpcf-view-type'); $pages['wpcf-view-type']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } $pages['wpcf-ctt'] = array('slug' => 'wpcf-ctt', 'menu_title' => __('Taxonomies', 'wpcf'), 'page_title' => __('Taxonomies', 'wpcf'), 'callback' => 'wpcf_admin_menu_summary_ctt', 'capability_filter' => 'wpcf_ctt_view', 'capability' => WPCF_CUSTOM_TAXONOMY_VIEW); $pages['wpcf-ctt']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-ctt']); $pages['wpcf-ctt']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-ctt']); $pages['wpcf-ctt']['contextual_help_legacy'] = wpcf_admin_help('wpcf-ctt'); $pages['wpcf-ctt']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; if ($current_page == 'wpcf-edit-tax') { $pages['wpcf-edit-tax'] = array('slug' => 'wpcf-edit-tax', 'menu_title' => isset($_GET['wpcf-tax']) ? __('Edit Taxonomy', 'wpcf') : __('Add New Taxonomy', 'wpcf'), 'page_title' => isset($_GET['wpcf-tax']) ? __('Edit Taxonomy', 'wpcf') : __('Add New Taxonomy', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_tax', 'capability' => WPCF_CUSTOM_TAXONOMY_EDIT, 'load_hook' => 'wpcf_admin_menu_edit_tax_hook'); $pages['wpcf-edit-tax']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-edit-tax']); $pages['wpcf-edit-tax']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-edit-tax']); $pages['wpcf-edit-tax']['contextual_help_legacy'] = wpcf_admin_help('wpcf-edit-tax'); $pages['wpcf-edit-tax']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } if ($current_page == 'wpcf-view-tax') { $pages['wpcf-view-tax'] = array('slug' => 'wpcf-view-tax', 'menu_title' => __('View Taxonomy', 'wpcf'), 'page_title' => __('View Taxonomy', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_tax', 'capability' => WPCF_CUSTOM_TAXONOMY_VIEW, 'load_hook' => 'wpcf_admin_menu_edit_tax_hook'); $pages['wpcf-view-tax']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-view-tax']); $pages['wpcf-view-tax']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-view-tax']); $pages['wpcf-view-tax']['contextual_help_legacy'] = wpcf_admin_help('wpcf-view-tax'); $pages['wpcf-view-tax']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } $pages['wpcf-cf'] = array('slug' => 'wpcf-cf', 'menu_title' => __('Post Fields', 'wpcf'), 'page_title' => __('Post Fields', 'wpcf'), 'callback' => 'wpcf_admin_menu_summary', 'capability_filter' => 'wpcf_cf_view', 'capability' => WPCF_CUSTOM_FIELD_VIEW); $pages['wpcf-cf']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-cf']); $pages['wpcf-cf']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-cf']); $pages['wpcf-cf']['contextual_help_legacy'] = wpcf_admin_help('wpcf-cf'); $pages['wpcf-cf']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; if ($current_page == 'wpcf-edit') { $pages['wpcf-edit'] = array('slug' => 'wpcf-edit', 'menu_title' => isset($_GET['group_id']) ? __('Edit Group', 'wpcf') : __('Add New Post Field Group', 'wpcf'), 'page_title' => isset($_GET['group_id']) ? __('Edit Group', 'wpcf') : __('Add New Post Field Group', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_fields', 'capability' => WPCF_CUSTOM_FIELD_VIEW, 'load_hook' => 'wpcf_admin_menu_edit_fields_hook'); $pages['wpcf-edit']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-edit']); $pages['wpcf-edit']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-edit']); $pages['wpcf-edit']['contextual_help_legacy'] = wpcf_admin_help('wpcf-edit'); $pages['wpcf-edit']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } if ($current_page == 'wpcf-view-custom-field') { $pages['wpcf-view-custom-field'] = array('slug' => 'wpcf-view-custom-field', 'menu_title' => __('View Post Field Group', 'wpcf'), 'page_title' => __('View Post Field Group', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_fields', 'capability' => WPCF_CUSTOM_FIELD_VIEW); $pages['wpcf-view-custom-field']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-view-custom-field']); $pages['wpcf-view-custom-field']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-view-custom-field']); $pages['wpcf-view-custom-field']['contextual_help_legacy'] = wpcf_admin_help('wpcf-view-custom-field'); $pages['wpcf-view-custom-field']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } $WPCF_Page_Listing_Termmeta = WPCF_Page_Listing_Termmeta::get_instance(); $pages[WPCF_Page_Listing_Termmeta::PAGE_NAME] = $WPCF_Page_Listing_Termmeta->add_submenu_page(); if ($current_page == WPCF_Page_Edit_Termmeta::PAGE_NAME) { $WPCF_Page_Edit_Termmeta = WPCF_Page_Edit_Termmeta::get_instance(); $pages[WPCF_Page_Edit_Termmeta::PAGE_NAME] = $WPCF_Page_Edit_Termmeta->add_submenu_page(); } $pages['wpcf-um'] = array('slug' => 'wpcf-um', 'menu_title' => __('User Fields', 'wpcf'), 'page_title' => __('User Fields', 'wpcf'), 'callback' => 'wpcf_usermeta_summary', 'capability_filter' => 'wpcf_uf_view', 'capability' => WPCF_USER_META_FIELD_VIEW); $pages['wpcf-um']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-um']); $pages['wpcf-um']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-um']); $pages['wpcf-um']['contextual_help_legacy'] = wpcf_admin_help('wpcf-um'); $pages['wpcf-um']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; if ($current_page == 'wpcf-edit-usermeta') { $pages['wpcf-edit-usermeta'] = array('slug' => 'wpcf-edit-usermeta', 'menu_title' => isset($_GET['group_id']) ? __('Edit User Field Group', 'wpcf') : __('Add New User Field Group', 'wpcf'), 'page_title' => isset($_GET['group_id']) ? __('Edit User Field Group', 'wpcf') : __('Add New User Field Group', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_user_fields', 'capability' => WPCF_USER_META_FIELD_EDIT); $pages['wpcf-edit-usermeta']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-edit-usermeta']); $pages['wpcf-edit-usermeta']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-edit-usermeta']); $pages['wpcf-edit-usermeta']['contextual_help_legacy'] = wpcf_admin_help('wpcf-edit-usermeta'); $pages['wpcf-edit-usermeta']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } if ($current_page == 'wpcf-view-usermeta') { $pages['wpcf-view-usermeta'] = array('slug' => 'wpcf-view-usermeta', 'menu_title' => __('View User Field Group', 'wpcf'), 'page_title' => __('View User Field Group', 'wpcf'), 'callback' => 'wpcf_admin_menu_edit_user_fields', 'capability' => WPCF_USER_META_FIELD_VIEW); $pages['wpcf-view-usermeta']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-view-usermeta']); $pages['wpcf-view-usermeta']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-view-usermeta']); $pages['wpcf-view-usermeta']['contextual_help_legacy'] = wpcf_admin_help('wpcf-view-usermeta'); $pages['wpcf-view-usermeta']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } if (class_exists('Acf') && !class_exists('acf_pro') || defined('CPT_VERSION')) { $pages['wpcf-migration'] = array('slug' => 'wpcf-migration', 'menu_title' => __('Types Migration', 'wpcf'), 'page_title' => __('Types Migration', 'wpcf'), 'callback' => 'wpcf_admin_menu_migration', 'capability' => 'manage_options'); $pages['wpcf-migration']['capability'] = wpcf_admin_calculate_menu_page_capability($pages['wpcf-migration']); $pages['wpcf-migration']['load_hook'] = wpcf_admin_calculate_menu_page_load_hook($pages['wpcf-migration']); $pages['wpcf-migration']['contextual_help_legacy'] = wpcf_admin_help('wpcf-migration'); $pages['wpcf-migration']['contextual_help_hook'] = 'wpcf_admin_help_add_tabs_load_hook'; } if ('installer' == $current_page) { // @todo Having a page with a slug "installer" is a direct path to a third-party plugin conflict. Just saying. Not to mention the callback funciton "installer_content", for god's sake $pages['installer'] = array('slug' => 'installer', 'menu_title' => __('Installer', 'wpcf'), 'page_title' => __('Installer', 'wpcf'), 'callback' => 'installer_content'); } /** * This used to load the Toolset Access teaser - code has not been removed * * This also usd to hook the Installer page, added above * * @todo this is to be deletd IMHO */ //do_action( 'wpcf_menu_plus' ); return $pages; }