add_menu([ 'id' => 'advset-admin-icon', 'title' => '' . $icon_svg . 'Advanced Settings', 'href' => 'javascript:void(0);', 'meta' => [ 'class' => 'advset-admin-icon', 'onclick' => 'advset_open_modal(); return false;' ] ]); } function advset_admin_bar_icon_register() { // Ensure to position the icon right after the wp menu add_action('admin_bar_menu', 'advset_admin_bar_icon', 10); } // Ensure to be the first after core menu registrations add_action('add_admin_bar_menus', 'advset_admin_bar_icon_register', -PHP_INT_MAX); /** * Add plugin action links */ if (is_admin()) { add_filter( 'plugin_action_links', function($links, $file) { if ( $file === plugin_basename( ADVSET_FILE ) ) { $links[] = '' . __('Settings') . ''; } return $links; }, 10, 2 ); } /** * Get the URLs of a registered script and all its dependencies in loading order * * Allows loading the script on demand in the browser with whatever files the current WordPress version registers for it. */ function advset_get_script_urls($handle, $urls = []) { $wp_scripts = wp_scripts(); $script = $wp_scripts->query($handle); if (!$script || isset($urls[$handle])) { return $urls; } foreach ($script->deps as $dependency) { $urls = advset_get_script_urls($dependency, $urls); } // Scripts without source are just aliases for their dependencies if ($script->src) { $src = preg_match('|^(https?:)?//|', $script->src) ? $script->src : $wp_scripts->base_url . $script->src; $urls[$handle] = add_query_arg('ver', $script->ver ?: $wp_scripts->default_version, $src); } return $urls; } /** * Enqueue admin UI scripts and styles */ function advset_admin_ui_scripts() { // Only load for administrators if (!current_user_can('manage_options')) { return; } // Register and enqueue CSS wp_register_style( 'advset-admin-ui', plugins_url('admin-ui.css', __FILE__), [], filemtime(ADVSET_DIR . '/admin-ui/admin-ui.css') ); wp_enqueue_style('advset-admin-ui'); // Register and enqueue JavaScript wp_register_script( 'advset-admin-ui', plugins_url('admin-ui.js', __FILE__), [], filemtime(ADVSET_DIR . '/admin-ui/admin-ui.js'), true ); // Prepare data for JavaScript $js_data = [ 'ajaxUrl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('advset-admin-ui-nonce'), 'reactAppUrl' => plugins_url('react/app.js', __FILE__) . '?v=' . ADVSET_VERSION, 'reactAppCssUrl' => plugins_url('react/app.css', __FILE__) . '?v=' . ADVSET_VERSION, // wp.element is WordPress' stable API on top of React, regardless of the React version WordPress ships 'wpElementScripts' => advset_get_script_urls('wp-element'), 'showUserGuide' => get_option('advset_guide_shown') === false, ]; wp_localize_script('advset-admin-ui', 'advsetAdminUI', $js_data); wp_enqueue_script('advset-admin-ui'); // Load user guide assets if needed if ($js_data['showUserGuide']) { wp_register_style( 'advset-user-guide', plugins_url('user-guide.css', __FILE__), ['advset-admin-ui'], filemtime(ADVSET_DIR . '/admin-ui/user-guide.css') ); wp_enqueue_style('advset-user-guide'); wp_register_script( 'advset-user-guide', plugins_url('user-guide.js', __FILE__), ['advset-admin-ui', 'wp-i18n'], filemtime(ADVSET_DIR . '/admin-ui/user-guide.js'), true ); wp_enqueue_script('advset-user-guide'); } } add_action('admin_enqueue_scripts', 'advset_admin_ui_scripts'); add_action('wp_enqueue_scripts', 'advset_admin_ui_scripts'); /** * Ensure wp-api (including wpApiSettings) is available for administrators */ function advset_api_settings() { // Only load for administrators if (!current_user_can('manage_options')) { return; } wp_enqueue_script('wp-api'); } add_action('wp_enqueue_scripts', 'advset_api_settings', 1000); add_action('admin_enqueue_scripts', 'advset_api_settings', 1000); /** * Add modal HTML to admin footer */ function advset_admin_modal_html() { // Only show for administrators if (!current_user_can('manage_options')) { return; } // Get the loading SVG content $loading_path = ADVSET_DIR . '/admin-ui/images/loading.svg'; $loading_svg = ''; if (file_exists($loading_path)) { $loading_svg = file_get_contents($loading_path); } // Get the close SVG content $close_path = ADVSET_DIR . '/admin-ui/images/close.svg'; $close_svg = ''; if (file_exists($close_path)) { $close_svg = file_get_contents($close_path); } ?>

Advanced Settings

Advanced Settings is made by wppeak.com.
We make plugins and other useful WordPress tools.