plugin_url . 'assets/admin/css/admin.min.css', array(), filemtime( ghostkit()->plugin_path . 'assets/admin/css/admin.min.css' ) ); wp_style_add_data( 'ghostkit-admin', 'rtl', 'replace' ); wp_style_add_data( 'ghostkit-admin', 'suffix', '.min' ); wp_enqueue_style( 'ghostkit-settings', ghostkit()->plugin_url . 'settings/style.min.css', array(), filemtime( ghostkit()->plugin_path . 'settings/style.min.css' ) ); wp_style_add_data( 'ghostkit-settings', 'rtl', 'replace' ); wp_style_add_data( 'ghostkit-settings', 'suffix', '.min' ); if ( 'toplevel_page_ghostkit' !== $screen->id ) { return; } $block_categories = array(); if ( function_exists( 'get_block_categories' ) ) { $block_categories = get_block_categories( get_post() ); } elseif ( function_exists( 'gutenberg_get_block_categories' ) ) { $block_categories = gutenberg_get_block_categories( get_post() ); } // enqueue blocks library. wp_enqueue_script( 'wp-block-library' ); wp_add_inline_script( 'wp-blocks', sprintf( 'wp.blocks.setCategories( %s );', wp_json_encode( $block_categories ) ), 'after' ); // Ghost Kit Settings. wp_enqueue_script( 'ghostkit-settings', ghostkit()->plugin_url . 'settings/index.min.js', array( 'ghostkit-helper', 'wp-data', 'wp-element', 'wp-components', 'wp-api', 'wp-api-request', 'wp-i18n' ), filemtime( ghostkit()->plugin_path . 'settings/index.min.js' ), true ); wp_localize_script( 'ghostkit-settings', 'ghostkitSettingsData', array( 'api_nonce' => wp_create_nonce( 'wp_rest' ), 'api_url' => rest_url( 'ghostkit/v1/' ), ) ); // phpcs:ignore do_action( 'enqueue_block_editor_assets' ); wp_enqueue_style( 'wp-components' ); if ( function_exists( 'wp_enqueue_media' ) ) { wp_enqueue_media(); } } /** * Go Pro. * Redirect to the Pro purchase page. */ public function go_pro_redirect() { // phpcs:ignore if ( ! isset( $_GET['page'] ) || empty( $_GET['page'] ) ) { return; } // phpcs:ignore if ( 'ghostkit_go_pro' === $_GET['page'] ) { $medium = 'admin_menu'; // phpcs:ignore if ( isset( $_GET['utm_medium'] ) ) { // phpcs:ignore $medium = $_GET['utm_medium']; } // phpcs:ignore wp_redirect( ghostkit()->go_pro_link() . '?utm_source=plugin&utm_medium=' . esc_attr( $medium ) . '&utm_campaign=go_pro&utm_content=2.25.0' ); exit(); } } /** * Add admin menu. */ public function admin_menu() { add_menu_page( esc_html__( 'Ghost Kit', 'ghostkit' ), esc_html__( 'Ghost Kit', 'ghostkit' ), 'manage_options', 'ghostkit', array( $this, 'display_admin_page' ), // phpcs:ignore 'data:image/svg+xml;base64,' . base64_encode( file_get_contents( ghostkit()->plugin_path . 'assets/images/admin-icon.svg' ) ), 56.9 ); add_submenu_page( 'ghostkit', '', esc_html__( 'Blocks', 'ghostkit' ), 'manage_options', 'ghostkit' ); add_submenu_page( 'ghostkit', '', esc_html__( 'Icons', 'ghostkit' ), 'manage_options', 'admin.php?page=ghostkit&sub_page=icons' ); add_submenu_page( 'ghostkit', '', esc_html__( 'Typography', 'ghostkit' ), 'manage_options', 'admin.php?page=ghostkit&sub_page=typography' ); add_submenu_page( 'ghostkit', '', esc_html__( 'Fonts', 'ghostkit' ), 'manage_options', 'admin.php?page=ghostkit&sub_page=fonts' ); add_submenu_page( 'ghostkit', '', esc_html__( 'Breakpoints', 'ghostkit' ), 'manage_options', 'admin.php?page=ghostkit&sub_page=breakpoints' ); add_submenu_page( 'ghostkit', '', esc_html__( 'CSS & JavaScript', 'ghostkit' ), 'manage_options', 'admin.php?page=ghostkit&sub_page=css_js' ); add_submenu_page( 'ghostkit', '', ' ' . esc_html__( 'Go Pro', 'ghostkit' ), 'manage_options', 'ghostkit_go_pro', array( $this, 'go_pro_redirect' ) ); add_menu_page( esc_html__( 'Reusable Blocks', 'ghostkit' ), esc_html__( 'Reusable Blocks', 'ghostkit' ), 'read', 'edit.php?post_type=wp_block', '', 'dashicons-editor-table', 57 ); } /** * Render the admin page. */ public function display_admin_page() { ?>