<?php if ( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly get_template_part('inc/wizard/wizard-functions'); get_template_part('inc/wizard/wizard-ajax-api'); add_action('admin_enqueue_scripts', 'tmpcoder_theme_admin_enqueue_script_custom'); function tmpcoder_theme_admin_enqueue_script_custom(){ $current_screen = get_current_screen(); if ( isset($current_screen->base) && ($current_screen->base == 'admin_page_tmpcoder-theme-wizard' || $current_screen->base == 'appearance_page_tmpcoder-theme-wizard') ){ wp_enqueue_style( 'tmpcoder-theme-wizard-admin-style', get_template_directory_uri() . '/inc/wizard/css/wizard-style' . Tmpcoder_Theme_Setup_Wizard::script_suffix() . '.css', false, '1.0.0' ); wp_enqueue_script( 'tmpcoder-theme-wizard-admin-script', get_template_directory_uri() . '/inc/wizard/js/wizard-script' . Tmpcoder_Theme_Setup_Wizard::script_suffix() . '.js', false, '1.0.0' ); $wizard_step = get_option(TMPCODER_THEME_SLUG.'_wizard_step'); // Define an array of data to pass to JavaScript $my_data = array( // 'ajax_url' => admin_url( 'admin-ajax.php' ), // 'some_value' => 'This is a value from PHP', 'tmpcoder_admin_url' => admin_url(), 'wizard_step' => esc_js($wizard_step), 'get_plugins_nonce' => esc_js(wp_create_nonce( 'tmpcoder_get_plugins') ), 'get_pro_addons_info_nonce' => esc_js(wp_create_nonce( 'tmpcoder_get_pro_addons_info') ), 'form_nonce' => esc_js( wp_nonce_field( 'tmpcoder_install_plugins','_wpnonce', true, false) ), 'next_step_btn' => esc_html__("Next Step",'spexo'), 'required_plugin_installing' => esc_html__("Installing Recommended Plugins",'spexo'), 'getting_required_plugins' => esc_html__("Getting Recommended Plugins Info",'spexo'), 'install_required_plugins' => esc_html__("Install Recommended Plugins",'spexo'), 'install_required_plugins_text' => sprintf("Make sure %s is running the most recent version. %s is designed to work with the recommended plugins listed below.", esc_html(TMPCODER_THEME_NAME), esc_html(TMPCODER_THEME_NAME)), 'install_and_activate' => esc_html__("Install & Activate",'spexo'), 'installed_and_activate' => esc_html__("Installed & Activate",'spexo'), 'installed_and_activated' => esc_html__("Activated",'spexo'), 'loading_pro_plugin_info' => esc_html__("Pro Plugin Info Loading...",'spexo'), 'network_error' => esc_html__("check network connection, try again.",'spexo'), ); // Pass the data to the JavaScript file wp_localize_script( 'tmpcoder-theme-wizard-admin-script', 'tmpcoderMessages', $my_data ); } } class Tmpcoder_Theme_Setup_Wizard { /** * @var Tmpcoder_Theme_Setup_Wizard */ private static $_instance; /** * @return Tmpcoder_Theme_Setup_Wizard */ public static function instance() { if ( is_null( self::$_instance ) ) { self::$_instance = new self(); } return self::$_instance; } function __construct(){ $wizard_run = get_option(TMPCODER_THEME_SLUG.'_wizard_done' , 0); if ( $wizard_run == 0 ) { add_action( 'admin_menu', array($this, 'register_newpage') ); } add_action( 'admin_notices', array($this, 'wizard_admin_notice_success') ); } public static function script_suffix() { // $dir = is_rtl() ? '-rtl' : ''; return defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; } function wizard_admin_notice_success() { if ( isset($_GET['saved']) && $_GET['saved'] == "wizard" ){ // phpcs:ignore WordPress.Security.NonceVerification.Recommended delete_option(TMPCODER_THEME_SLUG.'_wizard_step'); update_option(TMPCODER_THEME_SLUG.'_wizard_done', 1); ?> <div class="notice notice-success is-dismissible"> <p><?php esc_html_e( 'Congrats, The Setup Wizard has successfully set up your website.', 'spexo' ); ?></p> </div> <?php } } function register_newpage(){ add_theme_page( 'Wizard', // Page title 'Setup Wizard', // Menu title 'manage_options', // Capability 'tmpcoder-theme-wizard', // Menu slug array($this, 'tmpcoder_theme_func') // Function to display the page ); } function tmpcoder_theme_func(){ $current_user = wp_get_current_user(); $display_name = $current_user->display_name; ?> <div class="wrap tmpcoder-container tmpcoder-theme-wizard"> <hr class="wp-header-end"> <div class="theme-wizard-main"> <ul class="nav-tab-wrapper theme-wizard-nav wp-clearfix"> <li class="nav-tab theme-welcome" data-tab="theme-welcome"> <span class="step-number">1</span><?php echo esc_html( sprintf( /* translators: %s is Theme Name */ __( 'Welcome %s Theme', 'spexo' ) , ucfirst( TMPCODER_THEME_NAME )) ); ?> </li> <li class="nav-tab install-plugins disabled" data-tab="install-plugins"> <span class="step-number">2</span><?php esc_html_e('Install Recommended Plugins', 'spexo'); ?> </li> <li class="nav-tab get-pro-plugins disabled" data-tab="get-pro-plugins"> <span class="step-number">3</span><?php esc_html_e('Get a Spexo Addons Pro', 'spexo'); ?> </li> </ul> <div id="theme-welcome" class="tab-content tab-content-theme-welcome active"> <div class="tmpcoder-message-box theme-install-part"> <div class="wizard-header-logo"> <img src="<?php echo esc_url(get_template_directory_uri() . '/assets/images/logo.png'); ?>" /> </div> <h2 class="wizard-heading"><?php echo esc_html( sprintf( /* translators: %1$s is Theme Name, %2$s is User Name. */ __( 'Welcome To %1$s Theme Wizard, %2$s!', 'spexo' ) , ucfirst( TMPCODER_THEME_NAME ), ucfirst( $display_name ) ) ); ?></h2> <p class="wizard-title-text"><?php echo esc_html( sprintf( /* translators: %s is Theme Name. */ apply_filters( 'theme_admin_setup_welcome_text', __( 'We recommend making use of the %s Theme Wizard to create your website. the easiest way to get started.', 'spexo' ) ) , TMPCODER_THEME_NAME) ); ?> </p> <div class="next-step-action"> <button class="button button-primary next-step-btn"><?php esc_html_e('Next','spexo'); ?></button> <a class="skip-theme-wizard"><?php esc_html_e('Skip Setup & Go to Dashboard','spexo' ); ?></a> </div> </div> </div> <div id="install-plugins" class="tab-content tab-content-install-plugins"> <div class="tmpcoder-message-box install-plugin-part"> </div> </div> <div id="get-pro-plugins" class="tab-content tab-content-get-pro-plugins"> <div class="tmpcoder-message-box1 pro-plugins-part"> </div> </div> <div class="process-loader hide"> <span class="loader-image"></span> <span class="loader-text"></span> </div> </div> </div> <div class="tmpcoder-skip-theme-wizard-popup-wrap tmpcoder-admin-popup-wrap"> <div class="tmpcoder-skip-theme-wizard-popup tmpcoder-admin-popup"> <div id="tmpcoder-skip-theme-wizard-confirm-popup" class="mfp-hide"> <h2 class="popup-heading"> <?php esc_html_e('Skip the Setup Wizard?','spexo') ?> </h2> <div class="popup-content"> <p class="popup-message"><?php esc_html_e('Heads up! Would you like to continue without completing the setup wizard?', 'spexo') ?></p> <p class="popup-message"><?php echo wp_kses_post(__('You’ll still be able to access the setup wizard later from the <strong>“Appearance → Setup Wizard”</strong> menu.', 'spexo')); ?></p> <a class="button button-primary popup-close"><?php esc_html_e('Continue Setup', 'spexo') ?></a> <a class="button button-secondary tmpcoder-skip-theme-wizard-confirm-button"><?php esc_html_e('Yes, Skip', 'spexo') ?></a> </div> </div> </div> </div> <?php } } new Tmpcoder_Theme_Setup_Wizard();