set_vars( $config ); $this->init(); } /** * Set some settings * @since 1.0.0 * @param $config Our config parameters */ public function set_vars( $config ) { require_once trailingslashit( WHIZZIE_DIR ) . 'tgm/class-tgm-plugin-activation.php'; require_once trailingslashit( WHIZZIE_DIR ) . 'tgm/tgm.php'; if( isset( $config['architecture_building_page_slug'] ) ) { $this->architecture_building_page_slug = esc_attr( $config['architecture_building_page_slug'] ); } if( isset( $config['architecture_building_page_title'] ) ) { $this->architecture_building_page_title = esc_attr( $config['architecture_building_page_title'] ); } if( isset( $config['steps'] ) ) { $this->config_steps = $config['steps']; } $this->architecture_building_plugin_path = trailingslashit( dirname( __FILE__ ) ); $relative_url = str_replace( get_template_directory(), '', $this->architecture_building_plugin_path ); $this->architecture_building_plugin_url = trailingslashit( get_template_directory_uri() . $relative_url ); $architecture_building_current_theme = wp_get_theme(); $this->architecture_building_theme_title = $architecture_building_current_theme->get( 'Name' ); $this->architecture_building_theme_name = strtolower( preg_replace( '#[^a-zA-Z]#', '', $architecture_building_current_theme->get( 'Name' ) ) ); $this->architecture_building_page_slug = apply_filters( $this->architecture_building_theme_name . '_theme_setup_wizard_architecture_building_page_slug', $this->architecture_building_theme_name . '-wizard' ); $this->parent_slug = apply_filters( $this->architecture_building_theme_name . '_theme_setup_wizard_parent_slug', '' ); } /** * Hooks and filters * @since 1.0.0 */ public function init() { if ( class_exists( 'TGM_Plugin_Activation' ) && isset( $GLOBALS['tgmpa'] ) ) { add_action( 'init', array( $this, 'get_tgmpa_instance' ), 30 ); add_action( 'init', array( $this, 'set_tgmpa_url' ), 40 ); } add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'admin_menu', array( $this, 'menu_page' ) ); add_action( 'admin_init', array( $this, 'get_plugins' ), 30 ); add_filter( 'tgmpa_load', array( $this, 'tgmpa_load' ), 10, 1 ); add_action( 'wp_ajax_setup_plugins', array( $this, 'setup_plugins' ) ); add_action( 'wp_ajax_architecture_building_setup_widgets', array( $this, 'architecture_building_setup_widgets' ) ); } public function enqueue_scripts() { wp_enqueue_style( 'architecture-building-dashboard-style', get_template_directory_uri() . '/inc/dashboard/assets/css/dashboard.css'); wp_register_script( 'architecture-building-dashboard-script', get_template_directory_uri() . '/inc/dashboard/assets/js/dashboard.js', array( 'jquery' ), time() ); wp_localize_script( 'architecture-building-dashboard-script', 'whizzie_params', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'wpnonce' => wp_create_nonce( 'whizzie_nonce' ), 'verify_text' => esc_html( 'verifying', 'architecture-building' ) ) ); wp_enqueue_script( 'architecture-building-dashboard-script' ); } public static function get_instance() { if ( ! self::$instance ) { self::$instance = new self; } return self::$instance; } public function tgmpa_load( $status ) { return is_admin() || current_user_can( 'install_themes' ); } /** * Get configured TGMPA instance * * @access public * @since 1.1.2 */ public function get_tgmpa_instance() { $this->tgmpa_instance = call_user_func( array( get_class( $GLOBALS['tgmpa'] ), 'get_instance' ) ); } /** * Update $tgmpa_menu_slug and $tgmpa_parent_slug from TGMPA instance * * @access public * @since 1.1.2 */ public function set_tgmpa_url() { $this->tgmpa_menu_slug = ( property_exists( $this->tgmpa_instance, 'menu' ) ) ? $this->tgmpa_instance->menu : $this->tgmpa_menu_slug; $this->tgmpa_menu_slug = apply_filters( $this->architecture_building_theme_name . '_theme_setup_wizard_tgmpa_menu_slug', $this->tgmpa_menu_slug ); $tgmpa_parent_slug = ( property_exists( $this->tgmpa_instance, 'parent_slug' ) && $this->tgmpa_instance->parent_slug !== 'themes.php' ) ? 'admin.php' : 'themes.php'; $this->tgmpa_url = apply_filters( $this->architecture_building_theme_name . '_theme_setup_wizard_tgmpa_url', $tgmpa_parent_slug . '?page=' . $this->tgmpa_menu_slug ); } /** * Make a modal screen for the wizard */ public function menu_page() { add_theme_page( esc_html( $this->architecture_building_page_title ), esc_html( $this->architecture_building_page_title ), 'manage_options', $this->architecture_building_page_slug, array( $this, 'wizard_page' ) ); } /** * Make an interface for the wizard */ public function wizard_page() { tgmpa_load_bulk_installer(); if ( ! class_exists( 'TGM_Plugin_Activation' ) || ! isset( $GLOBALS['tgmpa'] ) ) { die( esc_html__( 'Failed to find TGM', 'architecture-building' ) ); } $url = wp_nonce_url( add_query_arg( array( 'plugins' => 'go' ) ), 'whizzie-setup' ); $method = ''; $fields = array_keys( $_POST ); if ( false === ( $creds = request_filesystem_credentials( esc_url_raw( $url ), $method, false, false, $fields ) ) ) { return true; } if ( ! WP_Filesystem( $creds ) ) { request_filesystem_credentials( esc_url_raw( $url ), $method, true, false, $fields ); return true; } $architecture_building_theme = wp_get_theme(); $architecture_building_theme_title = $architecture_building_theme->get( 'Name' ); ?>
> Appearance >> Customize >> Site Identity >> Upload your logo or Add site title and site description.','architecture-building'); ?>
> Appearance >> Customize >> Custom Page Settings >> Contact Details.','architecture-building'); ?>
> Appearance >> Menus >> Create Menus >> Add pages, post or custom link then save it.','architecture-building'); ?>
> Appearance >> Customize >> Custom Page Settings >> Social Media >> Add social links.','architecture-building'); ?>
> Appearance >> Widgets >> Add widgets in footer 1, footer 2, footer 3, footer 4.','architecture-building'); ?>
> Appearance >> Customize >> Custom Page Settings >> Footer Text >> Add copyright text.','architecture-building'); ?>
> Pages >> Add New Page >> Select "Custom Home Page" from templates. >> Publish it.','architecture-building'); ?>
> Post >> Add New Post >> Add title, content and featured image >> Publish it.','architecture-building'); ?>
> Appearance >> Customize >> Custom Page Settings >> Slider Settings >> Select post.','architecture-building'); ?>
> Post >> Add New Post >> Add title, content and featured image >> Publish it.','architecture-building'); ?>
> Appearance >> Customize >> Custom Page Settings >> Services Settings >> Select category','architecture-building'); ?>
Plugin
'; $content['detail'] .= 'Type
'; $content['detail'] .= 'architecture_building_theme_title ) ); ?>
array(), 'install' => array(), 'update' => array(), 'activate' => array() ); foreach( $instance->plugins as $slug=>$plugin ) { if( $instance->is_plugin_active( $slug ) && false === $instance->does_plugin_have_update( $slug ) ) { // Plugin is installed and up to date continue; } else { $plugins['all'][$slug] = $plugin; if( ! $instance->is_plugin_installed( $slug ) ) { $plugins['install'][$slug] = $plugin; } else { if( false !== $instance->does_plugin_have_update( $slug ) ) { $plugins['update'][$slug] = $plugin; } if( $instance->can_plugin_activate( $slug ) ) { $plugins['activate'][$slug] = $plugin; } } } } return $plugins; } /** * Get the widgets.wie file from the /content folder * @return Mixed Either the file or false * @since 1.1.0 */ public function has_widget_file() { if( file_exists( $this->widget_file_url ) ) { return true; } return false; } public function setup_plugins() { if ( ! check_ajax_referer( 'whizzie_nonce', 'wpnonce' ) || empty( $_POST['slug'] ) ) { wp_send_json_error( array( 'error' => 1, 'message' => esc_html__( 'No Slug Found','architecture-building' ) ) ); } $json = array(); // send back some json we use to hit up TGM $plugins = $this->get_plugins(); // what are we doing with this plugin? foreach ( $plugins['activate'] as $slug => $plugin ) { if ( $_POST['slug'] == $slug ) { $json = array( 'url' => admin_url( $this->tgmpa_url ), 'plugin' => array( $slug ), 'tgmpa-page' => $this->tgmpa_menu_slug, 'plugin_status' => 'all', '_wpnonce' => wp_create_nonce( 'bulk-plugins' ), 'action' => 'tgmpa-bulk-activate', 'action2' => - 1, 'message' => esc_html__( 'Activating Plugin','architecture-building' ), ); break; } } foreach ( $plugins['update'] as $slug => $plugin ) { if ( $_POST['slug'] == $slug ) { $json = array( 'url' => admin_url( $this->tgmpa_url ), 'plugin' => array( $slug ), 'tgmpa-page' => $this->tgmpa_menu_slug, 'plugin_status' => 'all', '_wpnonce' => wp_create_nonce( 'bulk-plugins' ), 'action' => 'tgmpa-bulk-update', 'action2' => - 1, 'message' => esc_html__( 'Updating Plugin','architecture-building' ), ); break; } } foreach ( $plugins['install'] as $slug => $plugin ) { if ( $_POST['slug'] == $slug ) { $json = array( 'url' => admin_url( $this->tgmpa_url ), 'plugin' => array( $slug ), 'tgmpa-page' => $this->tgmpa_menu_slug, 'plugin_status' => 'all', '_wpnonce' => wp_create_nonce( 'bulk-plugins' ), 'action' => 'tgmpa-bulk-install', 'action2' => - 1, 'message' => esc_html__( 'Installing Plugin','architecture-building' ), ); break; } } if ( $json ) { $json['hash'] = md5( serialize( $json ) ); // used for checking if duplicates happen, move to next plugin wp_send_json( $json ); } else { wp_send_json( array( 'done' => 1, 'message' => esc_html__( 'Success','architecture-building' ) ) ); } exit; } /** * Imports the Demo Content * @since 1.1.0 */ public function architecture_building_setup_widgets(){ require get_theme_file_path( '/inc/dashboard/setup.php' ); exit; } }