settings_page = WP_Job_Manager_Settings::instance(); add_action( 'admin_init', [ $this, 'admin_init' ] ); add_action( 'current_screen', [ $this, 'conditional_includes' ] ); add_action( 'admin_menu', [ $this, 'admin_menu' ], 12 ); add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] ); } /** * Set up actions during admin initialization. */ public function admin_init() { include_once dirname( __FILE__ ) . '/class-wp-job-manager-taxonomy-meta.php'; } /** * Include admin files conditionally. */ public function conditional_includes() { $screen = get_current_screen(); if ( ! $screen ) { return; } switch ( $screen->id ) { case 'options-permalink': include 'class-wp-job-manager-permalink-settings.php'; break; } } /** * Enqueues CSS and JS assets. */ public function admin_enqueue_scripts() { WP_Job_Manager::register_select2_assets(); $screen = get_current_screen(); if ( in_array( $screen->id, apply_filters( 'job_manager_admin_screen_ids', [ 'edit-job_listing', 'plugins', 'job_listing', 'job_listing_page_job-manager-settings', 'job_listing_page_job-manager-addons' ] ), true ) ) { wp_enqueue_style( 'jquery-ui' ); wp_enqueue_style( 'select2' ); wp_enqueue_style( 'job_manager_admin_css', JOB_MANAGER_PLUGIN_URL . '/assets/css/admin.css', [], JOB_MANAGER_VERSION ); wp_enqueue_script( 'wp-job-manager-datepicker' ); wp_register_script( 'jquery-tiptip', JOB_MANAGER_PLUGIN_URL . '/assets/js/jquery-tiptip/jquery.tipTip.min.js', [ 'jquery' ], JOB_MANAGER_VERSION, true ); wp_enqueue_script( 'job_manager_admin_js', JOB_MANAGER_PLUGIN_URL . '/assets/js/admin.min.js', [ 'jquery', 'jquery-tiptip', 'select2' ], JOB_MANAGER_VERSION, true ); wp_localize_script( 'job_manager_admin_js', 'job_manager_admin_params', [ 'user_selection_strings' => [ 'no_matches' => _x( 'No matches found', 'user selection', 'wp-job-manager' ), 'ajax_error' => _x( 'Loading failed', 'user selection', 'wp-job-manager' ), 'input_too_short_1' => _x( 'Please enter 1 or more characters', 'user selection', 'wp-job-manager' ), 'input_too_short_n' => _x( 'Please enter %qty% or more characters', 'user selection', 'wp-job-manager' ), 'load_more' => _x( 'Loading more results…', 'user selection', 'wp-job-manager' ), 'searching' => _x( 'Searching…', 'user selection', 'wp-job-manager' ), ], 'ajax_url' => admin_url( 'admin-ajax.php' ), 'search_users_nonce' => wp_create_nonce( 'search-users' ), ] ); } wp_enqueue_style( 'job_manager_admin_menu_css', JOB_MANAGER_PLUGIN_URL . '/assets/css/menu.css', [], JOB_MANAGER_VERSION ); } /** * Adds pages to admin menu. */ public function admin_menu() { add_submenu_page( 'edit.php?post_type=job_listing', __( 'Settings', 'wp-job-manager' ), __( 'Settings', 'wp-job-manager' ), 'manage_options', 'job-manager-settings', [ $this->settings_page, 'output' ] ); if ( WP_Job_Manager_Helper::instance()->has_licenced_products() || apply_filters( 'job_manager_show_addons_page', true ) ) { add_submenu_page( 'edit.php?post_type=job_listing', __( 'WP Job Manager Add-ons', 'wp-job-manager' ), __( 'Add-ons', 'wp-job-manager' ), 'manage_options', 'job-manager-addons', [ $this, 'addons_page' ] ); } } /** * Displays addons page. */ public function addons_page() { $addons = include 'class-wp-job-manager-addons.php'; $addons->output(); } } WP_Job_Manager_Admin::instance();