set_vars( $config ); $this->init(); } /** * Set variables based on configuration * @param $config Configuration parameters */ public function set_vars( $config ) { if ( isset( $config['page_slug'] ) ) { $this->page_slug = esc_attr( $config['page_slug'] ); } if ( isset( $config['page_title'] ) ) { $this->page_title = esc_attr( $config['page_title'] ); } if ( isset( $config['steps'] ) ) { $this->config_steps = $config['steps']; } $current_theme = wp_get_theme(); $this->theme_title = $current_theme->get( 'Name' ); $this->theme_name = strtolower( preg_replace( '#[^a-zA-Z]#', '', $current_theme->get( 'Name' ) ) ); $this->page_slug = apply_filters( $this->theme_name . '_theme_setup_wizard_page_slug', $this->theme_name . '-wizard' ); $this->parent_slug = apply_filters( $this->theme_name . '_theme_setup_wizard_parent_slug', '' ); } /*** Initialize hooks and actions ***/ public function init() { add_action( 'after_switch_theme', array( $this, 'redirect_to_wizard' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'admin_menu', array( $this, 'menu_page' ) ); add_action( 'wp_ajax_setup_widgets', array( $this, 'setup_widgets' ) ); } public function redirect_to_wizard() { global $pagenow; if ( is_admin() && 'themes.php' === $pagenow && isset( $_GET['activated'] ) && current_user_can( 'manage_options' ) ) { wp_redirect( admin_url( 'themes.php?page=' . esc_attr( $this->page_slug ) ) ); } } public function enqueue_scripts() { wp_enqueue_style( 'theme-wizard-style', get_template_directory_uri() . '/theme-wizard/assets/css/theme-wizard-style.css'); wp_register_script( 'theme-wizard-script', get_template_directory_uri() . '/theme-wizard/assets/js/theme-wizard-script.js', array( 'jquery' )); wp_localize_script( 'theme-wizard-script', 'auto_mechanic_whizzie_params', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'verify_text' => esc_html( 'verifying', 'auto-mechanic' ) ) ); wp_enqueue_script( 'theme-wizard-script' ); } public function menu_page() { add_theme_page( esc_html( $this->page_title ), esc_html( $this->page_title ), 'manage_options', $this->page_slug, array( $this, 'auto_mechanic_setup_wizard' ) ); } /*** Display the wizard page content ***/ public function wizard_page() { ?>
wizard_page(); ?>
array( 'id' => 'intro', 'title' => __( 'Welcome to ', 'auto-mechanic' ) . $this->theme_title, 'view' => 'get_step_intro', 'callback' => 'do_next_step', 'button_text' => __( 'Start Now', 'auto-mechanic' ), 'can_skip' => false ), 'widgets' => array( 'id' => 'widgets', 'title' => __( 'Demo Importer', 'auto-mechanic' ), 'view' => 'get_step_widgets', 'callback' => 'install_widgets', 'button_text' => __( 'Import Demo', 'auto-mechanic' ), 'can_skip' => true ), 'done' => array( 'id' => 'done', 'title' => __( 'All Done', 'auto-mechanic' ), 'view' => 'get_step_done' ) ); return $steps; } /*** Display the content for the intro step ***/ public function get_step_intro() { ?>

  1. > Pages >> Add New','auto-mechanic'); ?>

  1. > Appearance >> Menu','auto-mechanic'); ?>

  1. > Appearance >> Widgets','auto-mechanic'); ?>
__('Home','auto-mechanic'), 'menu-item-classes' => 'home', 'menu-item-url' => home_url( '/' ), 'menu-item-status' => 'publish')); wp_update_nav_menu_item($auto_mechanic_menu_id, 0, array( 'menu-item-title' => __('Bikes','auto-mechanic'), 'menu-item-classes' => 'bikes', 'menu-item-url' => get_permalink(get_page_by_title('Bikes')), 'menu-item-status' => 'publish')); wp_update_nav_menu_item($auto_mechanic_menu_id, 0, array( 'menu-item-title' => __('Cars','auto-mechanic'), 'menu-item-classes' => 'cars', 'menu-item-url' => get_permalink(get_page_by_title('Cars')), 'menu-item-status' => 'publish')); wp_update_nav_menu_item($auto_mechanic_menu_id, 0, array( 'menu-item-title' => __('Blogs','auto-mechanic'), 'menu-item-classes' => 'blog', 'menu-item-url' => get_permalink(get_page_by_title('Blogs')), 'menu-item-status' => 'publish')); if( !has_nav_menu( $auto_mechanic_bpmenulocation ) ){ $locations = get_theme_mod('nav_menu_locations'); $locations[$auto_mechanic_bpmenulocation] = $auto_mechanic_menu_id; set_theme_mod( 'nav_menu_locations', $locations ); } } } // ------------- /*** Imports demo content ***/ ----------------- // public function setup_widgets() { // Create a front page and assigned the template $auto_mechanic_home_title = 'Home'; $auto_mechanic_home_check = get_page_by_title($auto_mechanic_home_title); $auto_mechanic_home = array( 'post_type' => 'page', 'post_title' => $auto_mechanic_home_title, 'post_status' => 'publish', 'post_author' => 1, 'post_slug' => 'home' ); $auto_mechanic_home_id = wp_insert_post($auto_mechanic_home); //Set the static front page $auto_mechanic_home = get_page_by_title( 'Home' ); update_option( 'page_on_front', $auto_mechanic_home->ID ); update_option( 'show_on_front', 'page' ); // Create a posts page and assigned the template $auto_mechanic_blog_title = 'Blogs'; $auto_mechanic_blog = get_page_by_title($auto_mechanic_blog_title); if (!$auto_mechanic_blog) { $auto_mechanic_blog = array( 'post_type' => 'page', 'post_title' => $auto_mechanic_blog_title, 'post_status' => 'publish', 'post_author' => 1, 'post_name' => 'blog' ); $auto_mechanic_blog_id = wp_insert_post($auto_mechanic_blog); if (is_wp_error($auto_mechanic_blog_id)) { // Handle error } } else { $auto_mechanic_blog_id = $auto_mechanic_blog->ID; } // Set the posts page update_option('page_for_posts', $auto_mechanic_blog_id); // Create a BIKES and assigned the template $auto_mechanic_bikes_title = 'Bikes'; $auto_mechanic_bikes_check = get_page_by_title($auto_mechanic_bikes_title); $auto_mechanic_bikes = array( 'post_type' => 'page', 'post_title' => $auto_mechanic_bikes_title, 'post_status' => 'publish', 'post_author' => 1, 'post_slug' => 'blog' ); $auto_mechanic_bikes_id = wp_insert_post($auto_mechanic_bikes); // Create a CARS and assigned the template $auto_mechanic_cars_title = 'Cars'; $auto_mechanic_cars_check = get_page_by_title($auto_mechanic_cars_title); $auto_mechanic_cars = array( 'post_type' => 'page', 'post_title' => $auto_mechanic_cars_title, 'post_status' => 'publish', 'post_author' => 1, 'post_slug' => 'blog' ); $auto_mechanic_cars_id = wp_insert_post($auto_mechanic_cars); /*----------------------------------------- Header Button --------------------------------------------------*/ set_theme_mod( 'auto_mechanic_welcome_topbar_text','Welcome To Our Theme'); // ------------------------------------------ Blogs for Sections -------------------------------------- // Create categories if not already created $auto_mechanic_category_slider = wp_create_category('Slider'); $auto_mechanic_category_services = wp_create_category('Services'); // Array of categories to assign to each set of posts $auto_mechanic_categories = array($auto_mechanic_category_slider, $auto_mechanic_category_services); // Array of image URLs for the "Services" category $services_images = array( get_template_directory_uri() . '/resource/img/services1.png', get_template_directory_uri() . '/resource/img/services2.png', get_template_directory_uri() . '/resource/img/services3.png', ); // Loop to create posts for ($i = 1; $i <= 6; $i++) { $title = array( 'Excellence in Service', 'Excellence in Service', 'Excellence in Service', 'Luxury Cars', 'Sports Cars', 'SUV’s Cars' ); $content = 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry standard dummy text ever since.'; // Determine category and post index to use for title $category_index = ($i <= 3) ? 0 : 1; // First 3 for Slider, next 3 for Services $post_title = $title[$i - 1]; // Adjust for zero-based index in title array // Create post object $my_post = array( 'post_title' => wp_strip_all_tags($post_title), 'post_content' => $content, 'post_status' => 'publish', 'post_type' => 'post', 'post_category' => array($auto_mechanic_categories[$category_index]), // Assign Slider to first 3, Services to next 3 ); // Insert the post into the database $post_id = wp_insert_post($my_post); // Determine the category and set image URLs based on category if ($category_index === 0) { // Slider category $auto_mechanic_image_url = get_template_directory_uri() . '/resource/img/slider.png'; $auto_mechanic_image_name = 'slider.png'; } else { // Services category // Use different images for each post in Services category $services_image_index = $i - 4; // Correct index for the Services images array (i: 4, 5, 6 -> index: 0, 1, 2) $auto_mechanic_image_url = $services_images[$services_image_index]; $auto_mechanic_image_name = basename($auto_mechanic_image_url); } $auto_mechanic_upload_dir = wp_upload_dir(); $auto_mechanic_image_data = @file_get_contents($auto_mechanic_image_url); // Use @ to suppress errors if ($auto_mechanic_image_data === false) { continue; // Skip this iteration if image data is not found } $auto_mechanic_unique_file_name = wp_unique_filename($auto_mechanic_upload_dir['path'], $auto_mechanic_image_name); $filename = basename($auto_mechanic_unique_file_name); if (wp_mkdir_p($auto_mechanic_upload_dir['path'])) { $file = $auto_mechanic_upload_dir['path'] . '/' . $filename; } else { $file = $auto_mechanic_upload_dir['basedir'] . '/' . $filename; } file_put_contents($file, $auto_mechanic_image_data); $wp_filetype = wp_check_filetype($filename, null); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name($filename), 'post_content' => '', 'post_status' => 'inherit' ); $auto_mechanic_attach_id = wp_insert_attachment($attachment, $file, $post_id); require_once(ABSPATH . 'wp-admin/includes/image.php'); $auto_mechanic_attach_data = wp_generate_attachment_metadata($auto_mechanic_attach_id, $file); wp_update_attachment_metadata($auto_mechanic_attach_id, $auto_mechanic_attach_data); set_post_thumbnail($post_id, $auto_mechanic_attach_id); } // ---------------------------------------- Slider --------------------------------------------------- // set_theme_mod('banner_heading','Precision In Motion'); for($i=1; $i<=3; $i++) { set_theme_mod('auto_mechanic_banner_button_label_'.$i,'Explore Now'); set_theme_mod('auto_mechanic_banner_button_link_'.$i,''); } // ---------------------------------------- Services --------------------------------------------------- // set_theme_mod('auto_mechanic_heading_services_section','Types of vehicles we repair'); set_theme_mod('auto_mechanic_services_number', 2); // Setting 2 tabs for demo. // Loop to set default tab text values based on the number of tabs. $tabs_to_set = get_theme_mod('auto_mechanic_services_number', 0); for ($i = 1; $i <= $tabs_to_set; $i++) { set_theme_mod('auto_mechanic_services_text' . $i, ($i == 1) ? '4 Wheeler' : '2 Wheeler'); set_theme_mod('auto_mechanic_services_category'.$i,'Services'); } // ---------------------------------------- Footer section --------------------------------------------------- // set_theme_mod('auto_mechanic_footer_background_color_setting','#1f1f1f'); // ---------------------------------------- Related post_tag --------------------------------------------------- // set_theme_mod('auto_mechanic_post_related_post_label','Related Posts'); set_theme_mod('auto_mechanic_related_posts_count','3'); $this->auto_mechanic_customizer_primary_menu(); } }