<?php
/**
 * @package Demo Import
 * @since 1.0.0
 */

class ThemeWhizzie {

	protected $version = '1.1.0';

	/** @var string Current theme name, used as namespace in actions. */
	protected $theme_name = '';
	protected $theme_title = '';

	/** @var string Demo Import page slug and title. */
	protected $page_slug = '';
	protected $page_title = '';
	public $parent_slug;
	/** @var array Demo Import steps set by user. */
	protected $config_steps = array();

	/**
	 * Constructor
	 *
	 * @param $digital_marketer_config	Our config parameters
	*/
	public function __construct( $digital_marketer_config ) {
		$this->set_vars( $digital_marketer_config );
		$this->init();
	}

	/**
	 * Set some settings
	 * @since 1.0.0
	 * @param $digital_marketer_config	Our config parameters
	*/
	public function set_vars( $digital_marketer_config ) {
		if( isset( $digital_marketer_config['page_slug'] ) ) {
			$this->page_slug = esc_attr( $digital_marketer_config['page_slug'] );
		}
		if( isset( $digital_marketer_config['page_title'] ) ) {
			$this->page_title = esc_attr( $digital_marketer_config['page_title'] );
		}
		if( isset( $digital_marketer_config['steps'] ) ) {
			$this->config_steps = $digital_marketer_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 . '-demoimport' );
		$this->parent_slug = apply_filters( $this->theme_name . '_theme_setup_wizard_parent_slug', '' );
	}

	/**
	 * Hooks and filters
	 * @since 1.0.0
	*/
	public function init() {
		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 enqueue_scripts() {
		wp_enqueue_style( 'demo-import-style', get_template_directory_uri() . '/demo-import/assets/css/demo-import-style.css');
		wp_register_script( 'demo-import-script', get_template_directory_uri() . '/demo-import/assets/js/demo-import-script.js', array( 'jquery' ), time() );
		wp_localize_script(
			'demo-import-script',
			'digital_marketer_whizzie_params',
			array(
				'ajaxurl' 		=> admin_url( 'admin-ajax.php' ),
				'wpnonce' 		=> wp_create_nonce( 'whizzie_nonce' ),
				'verify_text'	=> esc_html( 'verifying', 'digital-marketer' )
			)
		);
		wp_enqueue_script( 'demo-import-script' );
	}

	/**  Make a modal screen for the wizard **/
	public function menu_page() {
		add_menu_page( esc_html( $this->page_title ), esc_html( $this->page_title ), 'manage_options', $this->page_slug, array( $this, 'digital_marketer_guide' ) ,'',40);
	}

	/** Make an interface for the wizard **/
	public function wizard_page() {
		/* If we arrive here, we have the filesystem */ ?>
		<div class="wrap">
			<?php echo '<div class="whizzie-wrap">';
				// The wizard is a list with only one item visible at a time
				$steps = $this->get_steps();
				echo '<ul class="whizzie-nav wizard-icon-nav">';?>
				<?php
					$stepI=1;
					foreach( $steps as $step ) {
						$stepAct=($stepI ==1)? 1 : 0;
						if( isset( $step['icon_text'] ) && $step['icon_text'] ) {
							echo '<li class="commom-cls nav-step-' . esc_attr( $step['id'] ) . '" wizard-steps="step-'.esc_attr( $step['id'] ).'" data-enable="'.$stepAct.'">
							<p>'.esc_attr( $step['icon_text'] ).'</p>
							</li>';
						}
					$stepI++;}
			 	echo '</ul>';
				echo '<ul class="whizzie-menu wizard-menu-page">';
				foreach( $steps as $step ) {
					$class = 'step step-' . esc_attr( $step['id'] );
					echo '<li data-step="' . esc_attr( $step['id'] ) . '" class="' . esc_attr( $class ) . '" >';
						$content = call_user_func( array( $this, $step['view'] ) );
						printf('<div class="wizard-button-wrapper">');
							if( isset( $step['button_text_one'] )) {
								printf(
									'<div class="button-wrap button-wrap-one">
										<a href="#" class="button button-primary do-it" data-callback="install_widgets" data-step="widgets"><p class="demo-type-text">%s</p></a>
									</div>',
									esc_html( $step['button_text_one'] )
								);
							}
						printf('</div>');
					echo '</li>';
				}
				echo '</ul>';
				?>
				<div class="step-loading"><span class="spinner">
					<img src="<?php echo esc_url(get_template_directory_uri().'/demo-import/assets/images/Spinner-Animaion.gif'); ?>">
				</span></div>
			<?php echo '</div>';?>
		</div>
	<?php }

	/**
	 * Set options for the steps
	 * @return Array
	*/
	public function get_steps() {
		$dev_steps = $this->config_steps;
		$steps = array(
			'widgets' => array(
				'id'			=> 'widgets',
				'title'			=> __( 'Customizer', 'digital-marketer' ),
				'icon'			=> 'welcome-widgets-menus',
				'view'			=> 'get_step_widgets',
				'callback'		=> 'install_widgets',
				'button_text_one'	=> __( 'Import Demo', 'digital-marketer' ),
				'can_skip'		=> true,
				'icon_text'      => 'Import Demo'
			),
			'done' => array(
				'id'			=> 'done',
				'title'			=> __( 'All Done', 'digital-marketer' ),
				'icon'			=> 'yes',
				'view'			=> 'get_step_done',
				'callback'		=> '',
				'icon_text'      => 'Done'
			)
		);
		// Iterate through each step and replace with dev config values
		if( $dev_steps ) {
			// Configurable elements - these are the only ones the dev can update from config.php
			$can_config = array( 'title', 'icon', 'button_text', 'can_skip' );
			foreach( $dev_steps as $dev_step ) {
				// We can only proceed if an ID exists and matches one of our IDs
				if( isset( $dev_step['id'] ) ) {
					$id = $dev_step['id'];
					if( isset( $steps[$id] ) ) {
						foreach( $can_config as $element ) {
							if( isset( $dev_step[$element] ) ) {
								$steps[$id][$element] = $dev_step[$element];
							}
						}
					}
				}
			}
		}
		return $steps;
	}

	/**    Print the content for the intro step     **/
		public function get_step_importer() { ?>
		<div class="summary">
			<p>
				<?php esc_html_e('Thank you for choosing this Digital Marketer Theme. Using this quick setup wizard, you will be able to configure your new website and get it running in just a few minutes. Just follow these simple steps mentioned in the wizard and get started with your website.','digital-marketer'); ?>
			</p>
		</div>
	<?php }

	/**   Print the content for the widgets step   **/
	public function get_step_widgets() { ?>
		<div class="summary">
			<p>
				<?php esc_html_e('This theme allows you to import demo content and add widgets. Install them using the button below. You can also update or deactivate them using the Customizer.','digital-marketer'); ?>
			</p>
		</div>
	<?php }

	/** Print the content for the final step **/
	public function get_step_done() { ?>

		<div class="setup-finish">
			<p>
				<?php echo esc_html('Your demo content has been imported successfully. Click the finish button for more information.'); ?>
			</p>
			<div class="finish-buttons">
				<a href="<?php echo esc_url( admin_url( 'themes.php?page=digital-marketer-getstart-page' ) ); ?>" class="wz-btn-customizer" target="_blank"><?php esc_html_e('About Digital Marketer','digital-marketer') ?></a>
				<a href="<?php echo esc_url(admin_url('/customize.php')); ?>" class="wz-btn-customizer" target="_blank"><?php esc_html_e('Customize Your Demo','digital-marketer') ?></a>
				<a href="" class="wz-btn-builder" target="_blank"><?php esc_html_e('Customize Your Demo','digital-marketer'); ?></a>
				<a href="<?php echo esc_url(home_url()); ?>" class="wz-btn-visit-site" target="_blank"><?php esc_html_e('Visit Your Site','digital-marketer'); ?></a>
			</div>
			<div class="finish-buttons">
				<a href="<?php echo esc_url(admin_url()); ?>" class="button button-primary"><?php esc_html_e('Finish','digital-marketer'); ?></a>
			</div>
		</div>

	<?php }


	public function digital_marketer_customizer_nav_menu() {
		// ------- Create Primary Menu --------
		$digital_marketer_themename = 'Digital Marketer'; // Ensure the theme name is set
		$digital_marketer_menuname = $digital_marketer_themename . ' Primary Menu';
		$digital_marketer_menulocation = 'menu-1';
		$digital_marketer_menu_exists = wp_get_nav_menu_object($digital_marketer_menuname);

		if (!$digital_marketer_menu_exists) {
			$digital_marketer_menu_id = wp_create_nav_menu($digital_marketer_menuname);

			// Home
			wp_update_nav_menu_item($digital_marketer_menu_id, 0, array(
				'menu-item-title' => __('Home', 'digital-marketer'),
				'menu-item-classes' => 'home',
				'menu-item-url' => home_url('/'),
				'menu-item-status' => 'publish'
			));

			// About
			$digital_marketer_page_about = get_page_by_path('about');
			if($digital_marketer_page_about){
				wp_update_nav_menu_item($digital_marketer_menu_id, 0, array(
					'menu-item-title' => __('About', 'digital-marketer'),
					'menu-item-classes' => 'about',
					'menu-item-url' => get_permalink($digital_marketer_page_about),
					'menu-item-status' => 'publish'
				));
			}

			// Services
			$digital_marketer_page_services = get_page_by_path('services');
			if($digital_marketer_page_services){
				wp_update_nav_menu_item($digital_marketer_menu_id, 0, array(
					'menu-item-title' => __('Services', 'digital-marketer'),
					'menu-item-classes' => 'services',
					'menu-item-url' => get_permalink($digital_marketer_page_services),
					'menu-item-status' => 'publish'
				));
			}

			// Blog
			$digital_marketer_page_blog = get_page_by_path('blog');
			if($digital_marketer_page_blog){
				wp_update_nav_menu_item($digital_marketer_menu_id, 0, array(
					'menu-item-title' => __('Blog', 'digital-marketer'),
					'menu-item-classes' => 'blog',
					'menu-item-url' => get_permalink($digital_marketer_page_blog),
					'menu-item-status' => 'publish'
				));
			}

			// Contact Us
			$digital_marketer_page_contact = get_page_by_path('contact');
			if($digital_marketer_page_contact){
				wp_update_nav_menu_item($digital_marketer_menu_id, 0, array(
					'menu-item-title' => __('Contact Us', 'digital-marketer'),
					'menu-item-classes' => 'contact',
					'menu-item-url' => get_permalink($digital_marketer_page_contact),
					'menu-item-status' => 'publish'
				));
			}

			// Assign menu to location if not set
			if (!has_nav_menu($digital_marketer_menulocation)) {
				$digital_marketer_locations = get_theme_mod('nav_menu_locations');
				$digital_marketer_locations[$digital_marketer_menulocation] = $digital_marketer_menu_id; // Use $digital_marketer_menu_id here
				set_theme_mod('nav_menu_locations', $digital_marketer_locations);
			}
		}
	}

	public function digital_marketer_social_menu() {

		// ------- Create Social Menu --------
		$digital_marketer_menuname = $digital_marketer_themename . 'Social Menu';
		$digital_marketer_menulocation = 'social-menu';
		$digital_marketer_menu_exists = wp_get_nav_menu_object( $digital_marketer_menuname );

		if( !$digital_marketer_menu_exists){
			$digital_marketer_menu_id = wp_create_nav_menu($digital_marketer_menuname);

			wp_update_nav_menu_item( $digital_marketer_menu_id, 0, array(
				'menu-item-title'  => __( 'Facebook', 'digital-marketer' ),
				'menu-item-url'    => 'https://www.facebook.com',
				'menu-item-status' => 'publish',
			) );

			wp_update_nav_menu_item( $digital_marketer_menu_id, 0, array(
				'menu-item-title'  => __( 'Pinterest', 'digital-marketer' ),
				'menu-item-url'    => 'https://www.pinterest.com',
				'menu-item-status' => 'publish',
			) );
	
			wp_update_nav_menu_item( $digital_marketer_menu_id, 0, array(
				'menu-item-title'  => __( 'Twitter', 'digital-marketer' ),
				'menu-item-url'    => 'https://www.twitter.com',
				'menu-item-status' => 'publish',
			) );
	
			wp_update_nav_menu_item( $digital_marketer_menu_id, 0, array(
				'menu-item-title'  => __( 'Youtube', 'digital-marketer' ),
				'menu-item-url'    => 'https://www.youtube.com',
				'menu-item-status' => 'publish',
			) );

			wp_update_nav_menu_item( $digital_marketer_menu_id, 0, array(
				'menu-item-title'  => __( 'Instagram', 'digital-marketer' ),
				'menu-item-url'    => 'https://www.instagram.com',
				'menu-item-status' => 'publish',
			) );

			if( !has_nav_menu( $digital_marketer_menulocation ) ){
					$locations = get_theme_mod('nav_menu_locations');
					$locations[$digital_marketer_menulocation] = $digital_marketer_menu_id;
					set_theme_mod( 'nav_menu_locations', $locations );
			}
		}
	}


	/**
	* Imports the Demo Content
	* @since 1.1.0
	*/
	public function setup_widgets() {

		//................................................. MENU PAGES .................................................//
		
		$digital_marketer_home_id='';
		$digital_marketer_home_content = '';

		$digital_marketer_home_title = 'Home';
		$digital_marketer_home = array(
				'post_type' => 'page',
				'post_title' => $digital_marketer_home_title,
				'post_content'  => $digital_marketer_home_content,
				'post_status' => 'publish',
				'post_author' => 1,
				'post_slug' => 'home'
		);
		$digital_marketer_home_id = wp_insert_post($digital_marketer_home);

		//Set the home page template
		add_post_meta( $digital_marketer_home_id, '_wp_page_template', 'revolution-home.php' );

		//Set the static front page
		$digital_marketer_home = get_page_by_title( 'Home' );
		update_option( 'page_on_front', $digital_marketer_home->ID );
		update_option( 'show_on_front', 'page' );


		// Create a posts page and assign the template
		$digital_marketer_blog_title = 'Blog';
		$digital_marketer_blog_check = get_page_by_path('blog');
		if (!$digital_marketer_blog_check) {
			$digital_marketer_blog = array(
				'post_type'    => 'page',
				'post_title'   => $digital_marketer_blog_title,
				'post_status'  => 'publish',
				'post_author'  => 1,
				'post_name'    => 'blog' // Unique slug for the blog page
			);
			$digital_marketer_blog_id = wp_insert_post($digital_marketer_blog);

			// Set the posts page
			if (!is_wp_error($digital_marketer_blog_id)) {
				update_option('page_for_posts', $digital_marketer_blog_id);
			}
		}

		// Create a Contact Us page and assign the template
		$digital_marketer_contact_title = 'Contact Us';
		$digital_marketer_contact_check = get_page_by_path('contact');
		if (!$digital_marketer_contact_check) {
			$digital_marketer_contact = array(
				'post_type'    => 'page',
				'post_title'   => $digital_marketer_contact_title,
				'post_content'   => '"More About The Free Digital Marketer WordPress Theme"
										The theme seamlessly integrates with the popular WooCommerce plugin, providing robust e-commerce functionalities. This includes inventory management, support for multiple payment methods, and sales tracking. Businesses can also customize the theme extensively to match their brand identity, allowing for changes in colors, fonts, layouts, and logo uploads.	

										To enhance product presentation, the theme includes various product showcase features such as sliders, carousels, and galleries. This enables businesses to effectively highlight their products and promote special offers. Furthermore, the theme is optimized for speed and search engines, ensuring fast loading times and improved visibility in search engine results, potentially attracting more organic traffic. In addition to its visual appeal and customization options, the Free Digital Marketer WordPress Theme is translation-ready. This feature enables businesses to reach a global audience and explore international markets more easily. Overall, this theme is a valuable and cost-effective solution for businesses in the grocery and supermarket industry, helping them establish or enhance their online presence effectively and affordably.',
					'post_status'  => 'publish',
				'post_author'  => 1,
				'post_name'    => 'contact' // Unique slug for the Contact Us page
			);
			wp_insert_post($digital_marketer_contact);
		}

		// Create a About page and assign the template
		$digital_marketer_about_title = 'About';
		$digital_marketer_about_check = get_page_by_path('about');
		if (!$digital_marketer_about_check) {
			$digital_marketer_about = array(
				'post_type'    => 'page',
				'post_title'   => $digital_marketer_about_title,
				'post_content'   => '"More About The Free Digital Marketer WordPress Theme"
										The theme seamlessly integrates with the popular WooCommerce plugin, providing robust e-commerce functionalities. This includes inventory management, support for multiple payment methods, and sales tracking. Businesses can also customize the theme extensively to match their brand identity, allowing for changes in colors, fonts, layouts, and logo uploads.	

										To enhance product presentation, the theme includes various product showcase features such as sliders, carousels, and galleries. This enables businesses to effectively highlight their products and promote special offers. Furthermore, the theme is optimized for speed and search engines, ensuring fast loading times and improved visibility in search engine results, potentially attracting more organic traffic. In addition to its visual appeal and customization options, the Free Digital Marketer WordPress Theme is translation-ready. This feature enables businesses to reach a global audience and explore international markets more easily. Overall, this theme is a valuable and cost-effective solution for businesses in the grocery and supermarket industry, helping them establish or enhance their online presence effectively and affordably.',
					'post_status'  => 'publish',
				'post_author'  => 1,
				'post_name'    => 'about' // Unique slug for the About page
			);
			wp_insert_post($digital_marketer_about);
		}

		// Create a Services page and assign the template
		$digital_marketer_services_title = 'Services';
		$digital_marketer_services_check = get_page_by_path('services');
		if (!$digital_marketer_services_check) {
			$digital_marketer_services = array(
				'post_type'    => 'page',
				'post_title'   => $digital_marketer_services_title,
				'post_content'   => '"More About The Free Digital Marketer WordPress Theme"
										The theme seamlessly integrates with the popular WooCommerce plugin, providing robust e-commerce functionalities. This includes inventory management, support for multiple payment methods, and sales tracking. Businesses can also customize the theme extensively to match their brand identity, allowing for changes in colors, fonts, layouts, and logo uploads.	

										To enhance product presentation, the theme includes various product showcase features such as sliders, carousels, and galleries. This enables businesses to effectively highlight their products and promote special offers. Furthermore, the theme is optimized for speed and search engines, ensuring fast loading times and improved visibility in search engine results, potentially attracting more organic traffic. In addition to its visual appeal and customization options, the Free Digital Marketer WordPress Theme is translation-ready. This feature enables businesses to reach a global audience and explore international markets more easily. Overall, this theme is a valuable and cost-effective solution for businesses in the grocery and supermarket industry, helping them establish or enhance their online presence effectively and affordably.',
					'post_status'  => 'publish',
				'post_author'  => 1,
				'post_name'    => 'services' // Unique slug for the Services page
			);
			wp_insert_post($digital_marketer_services);
		}


		// ------------------------------------------ Header -------------------------------------- //

			set_theme_mod('digital_marketer_site_tagline_text','For financial peace of mind you can trust Fintech');

			set_theme_mod('digital_marketer_header_text1_option','Help');
			set_theme_mod('digital_marketer_header_link1_option','#');
			set_theme_mod('digital_marketer_header_text2_option','What We Do');
			set_theme_mod('digital_marketer_header_link2_option','#');
			set_theme_mod('digital_marketer_header_text3_option','Faqs');
			set_theme_mod('digital_marketer_header_link3_option','#');

			set_theme_mod('digital_marketer_location_text_option','351 Montreal Ave, Staten Isiand, NY 10306');
			set_theme_mod('digital_marketer_phone_text_option','9876543210. 1234567890');
			set_theme_mod('digital_marketer_email_text_option','Expample@gmail.com 12345@gmail.com');
			set_theme_mod('digital_marketer_quote_link_option','#');

			set_theme_mod( 'digital_marketer_enable_slider', 1 );
			set_theme_mod( 'digital_marketer_enable_event', 1 );

		// ------------------------------------------ Slider Section -------------------------------------- //

			set_theme_mod('digital_marketer_slide_number','3');

			for($i=1;$i<=3;$i++){
				set_theme_mod( 'digital_marketer_slider_image'.$i,get_template_directory_uri().'/revolution/assets/image/slider'.$i.'.png' );
				set_theme_mod( 'digital_marketer_slider_heading'.$i, 'WE ARE DIGITAL MARKETING AGENCY' );
				set_theme_mod( 'digital_marketer_slider_text'.$i, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' );
				set_theme_mod( 'digital_marketer_slider_button1_text'.$i, 'READ MORE' );
				set_theme_mod( 'digital_marketer_slider_button1_link'.$i, '#' );
			}

		// ------------------------------------------ PORTFOLIO Section -------------------------------------- //

			set_theme_mod('digital_marketer_event_heading','PORTFOLIO');
			set_theme_mod('digital_marketer_event_text','Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas harum, hic officiis commodi reprehenderit explicabo');

			$digital_marketer_category_headings = array(
				'Social Media Strategy',
				'Search Engine Optimization',
				'Email Marketing Campaigns',
				'Pay-Per-Click Advertising',
				'Content Marketing Solutions',
				'Influencer Collaborations'
			);
			
			for ($i = 1; $i <= 6; $i++) {
				set_theme_mod('digital_marketer_category_image' . $i, get_template_directory_uri() . '/revolution/assets/image/portfolio' . $i . '.png');
				set_theme_mod('digital_marketer_category_heading' . $i, $digital_marketer_category_headings[$i - 1]);
				set_theme_mod('digital_marketer_category_text' . $i, 'Lorem ipsum dolor sit amet, consectetur adipis Licing elit. Voluptas harum, hic officis');
				set_theme_mod('digital_marketer_category_button1_text' . $i, 'READ MORE');
				set_theme_mod('digital_marketer_category_button1_link' . $i, '#');
			}
			

		$this->digital_marketer_social_menu();
		$this->digital_marketer_customizer_nav_menu();
	}

	public function digital_marketer_guide() {
		$display_string = '';
		$return = add_query_arg( array()) ;
		$theme = wp_get_theme( 'digital-marketer' );
		?>
		<div class="wrapper-info get-stared-page-wrap">
			<div class="wrapper-info-content">
				<div class="buynow__">
					<h2><?php esc_html_e( 'Welcome to Digital Marketer', 'digital-marketer' ); ?> <span class="version">Version: <?php echo esc_html($theme['Version']);?></span></h2>
					<p><?php esc_html_e('The quick setup wizard will assist you in configuring your new website. This wizard will import the demo content.', 'digital-marketer'); ?></p>
				</div>
				<div class="buynow_">
					<a target="_blank" class="buynow_themepage" href="<?php echo esc_url('https://www.revolutionwp.com/products/digital-marketing-wordpress-theme'); ?>"><?php echo esc_html__('Go Premium Now', 'digital-marketer'); ?></a>
				</div>
			</div>
			<div class="tab-sec theme-option-tab">
				<div id="demo_offer" class="tabcontent open">
					<?php $this->wizard_page(); ?>
				</div>
			</div>
		</div>
	<?php }
}