Файловый менеджер - Редактировать - /home/digitalm/invisalign/wp-content/plugins/otter-blocks/inc/plugins/class-fse-onboarding.php
Назад
<?php /** * Otter FSE_Onboarding. * * @package ThemeIsle\GutenbergBlocks\Plugins */ namespace ThemeIsle\GutenbergBlocks\Plugins; use ThemeIsle\GutenbergBlocks\Pro; /** * Class FSE_Onboarding */ class FSE_Onboarding { const OPTION_KEY = 'otter_onboarding_status'; const SUPPORT_KEY = 'otter-onboarding'; /** * The main instance var. * * @var FSE_Onboarding|null */ protected static $instance = null; /** * Initialize the class */ public function init() { add_action( 'after_switch_theme', array( $this, 'on_switch_theme' ) ); add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_options_assets' ) ); add_action( 'admin_menu', array( $this, 'register_menu_page' ) ); } /** * Register menu page * * @access public * @return void */ public function register_menu_page() { $has_support = get_theme_support( self::SUPPORT_KEY ); if ( false === $has_support || ! current_user_can( 'manage_options' ) || true !== boolval( get_option( 'themeisle_blocks_settings_onboarding_wizard', true ) ) ) { return; } add_submenu_page( 'themes.php', esc_html__( 'Theme Setup', 'otter-blocks' ), esc_html__( 'Theme Setup', 'otter-blocks' ), 'manage_options', 'otter-onboarding', function() { $redirect = add_query_arg( array( 'onboarding' => 'true', ), admin_url( 'site-editor.php' ) ); echo '<p>Redirecting...</p> <script>document.location.href = "' . esc_url( $redirect ) . '";</script>'; } ); } /** * On switch theme * * @access public * @return void */ public function on_switch_theme() { // Check if the theme has support for FSE. $support = get_theme_support( self::SUPPORT_KEY ); if ( false === $support ) { return; } $status = get_option( self::OPTION_KEY, array() ); $slug = get_stylesheet(); if ( ! empty( $status[ $slug ] ) ) { return; } // Flag onboarding status in case being run from a theme. self::set_onboarding_status(); // Run the onboarding. $redirect = add_query_arg( array( 'onboarding' => 'true', ), admin_url( 'site-editor.php' ) ); // Redirect to the onboarding. wp_safe_redirect( $redirect ); exit; } /** * Set Onboarding Status * * @access public * @return void */ public static function set_onboarding_status() { $status = get_option( self::OPTION_KEY, array() ); $slug = get_stylesheet(); if ( ! empty( $status[ $slug ] ) ) { return; } $status[ $slug ] = true; update_option( self::OPTION_KEY, $status ); } /** * Get Theme Templates * * @access public * @return array|false */ public function get_templates() { $support = get_theme_support( self::SUPPORT_KEY ); if ( false === $support || ! is_array( $support ) || ( ! isset( $support[0]['templates'] ) && ! isset( $support[0]['page_templates'] ) ) ) { return false; } $templates = array(); if ( isset( $support[0]['templates'] ) ) { $templates = $support[0]['templates']; } if ( isset( $support[0]['page_templates'] ) ) { $templates['page_templates'] = $support[0]['page_templates']; } if ( ! $templates ) { return false; } foreach ( $templates as $key => $categories ) { foreach ( $categories as $i => $template ) { if ( file_exists( $template['file'] ) ) { if ( 'php' === pathinfo( $template['file'], PATHINFO_EXTENSION ) ) { $content = include $template['file']; $templates[ $key ][ $i ]['content']['raw'] = $content; } else { $templates[ $key ][ $i ]['content']['raw'] = file_get_contents( $template['file'] ); } unset( $templates[ $key ][ $i ]['file'] ); } else { unset( $templates[ $key ][ $i ] ); } } } return apply_filters( 'otter_fse_onboarding_templates', $templates ); } /** * Get Theme Logo * * @access public * @return string|false */ public function get_theme_logo() { $support = get_theme_support( self::SUPPORT_KEY ); if ( false === $support || ! is_array( $support ) || ( ! isset( $support[0]['logo'] ) ) ) { return false; } $logo = esc_url( $support[0]['logo'] ); if ( ! $logo ) { return false; } return $logo; } /** * Get Templates Types * * @access public * @return array */ public function get_templates_types() { $templates = $this->get_templates(); if ( ! $templates ) { return array(); } return array_keys( $templates ); } /** * Enqueue options assets. * * @access public * @return void */ public function enqueue_options_assets() { $current_screen = get_current_screen(); $has_support = get_theme_support( self::SUPPORT_KEY ); if ( false === $has_support || ! current_user_can( 'manage_options' ) || ! isset( $current_screen->id ) || 'site-editor' !== $current_screen->id ) { return; } // Flag onboarding status in case being run from a theme. self::set_onboarding_status(); $asset_file = include OTTER_BLOCKS_PATH . '/build/onboarding/index.asset.php'; wp_enqueue_media(); wp_enqueue_style( 'otter-onboarding-styles', OTTER_BLOCKS_URL . 'build/onboarding/style-index.css', array( 'wp-components' ), $asset_file['version'] ); wp_enqueue_script( 'otter-onboarding-scripts', OTTER_BLOCKS_URL . 'build/onboarding/index.js', $asset_file['dependencies'], $asset_file['version'], true ); wp_set_script_translations( 'otter-onboarding-scripts', 'otter-blocks' ); wp_localize_script( 'otter-onboarding-scripts', 'otterOnboardingData', apply_filters( 'otter_onboarding_data', array( 'version' => OTTER_BLOCKS_VERSION, 'assetsPath' => OTTER_BLOCKS_URL . 'assets/', 'supportedSteps' => $this->get_templates_types(), 'logo' => $this->get_theme_logo(), 'license' => apply_filters( 'product_otter_license_key', 'free' ), 'rootUrl' => get_site_url(), 'dashboardUrl' => get_admin_url(), 'isDev' => defined( 'ENABLE_OTTER_PRO_DEV' ), 'userEmail' => wp_get_current_user()->user_email, ) ) ); } /** * The instance method for the static class. * Defines and returns the instance of the static class. * * @static * @since 1.7.1 * @access public * @return FSE_Onboarding */ public static function instance() { if ( is_null( self::$instance ) ) { self::$instance = new self(); self::$instance->init(); } return self::$instance; } /** * Throw error on object clone * * The whole idea of the singleton design pattern is that there is a single * object therefore, we don't want the object to be cloned. * * @access public * @since 1.7.1 * @return void */ public function __clone() { // Cloning instances of the class is forbidden. _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'otter-blocks' ), '1.0.0' ); } /** * Disable unserializing of the class * * @access public * @since 1.7.1 * @return void */ public function __wakeup() { // Unserializing instances of the class is forbidden. _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'otter-blocks' ), '1.0.0' ); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Генерация страницы: 0.05 |
proxy
|
phpinfo
|
Настройка