<?php
/**
 * Eauto Repair functions and definitions
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Eauto Repair
 */

require_once get_theme_file_path( 'vendor/wptrt/autoload/src/Eauto_Repair_Loader.php' );

$Eauto_Repair_Loader = new \WPTRT\Autoload\Eauto_Repair_Loader();

$Eauto_Repair_Loader->eauto_repair_add( 'WPTRT\\Customize\\Section', get_theme_file_path( 'vendor/wptrt/customize-section-button/src' ) );

$Eauto_Repair_Loader->eauto_repair_register();

if ( ! function_exists( 'eauto_repair_setup' ) ) :

	function eauto_repair_setup() {

		/*
		 * Enable support for Post Formats.
		 *
		 * See: https://codex.wordpress.org/Post_Formats
		*/
		add_theme_support( 'post-formats', array('image','video','gallery','audio',) );
		add_theme_support( "responsive-embeds" );
		add_theme_support( "align-wide" );
		add_theme_support( "wp-block-styles" );
		add_theme_support( 'automatic-feed-links' );
		add_theme_support( 'woocommerce' );
		add_theme_support( 'title-tag' );
		add_theme_support( 'post-thumbnails' );
        add_image_size('eauto-repair-featured-header-image', 2000, 660, true);

        register_nav_menus( array(
            'primary' => esc_html__( 'Primary','eauto-repair' ),
        ) );

		add_theme_support( 'html5', array(
			'search-form',
			'comment-form',
			'comment-list',
			'gallery',
			'caption',
		) );

		add_theme_support( 'custom-background', apply_filters( 'eauto_repair_custom_background_args', array(
			'default-color' => 'f7ebe5',
			'default-image' => '',
		) ) );

		add_theme_support( 'customize-selective-refresh-widgets' );

		add_theme_support( 'custom-logo', array(
			'height'      => 200,
			'width'       => 200,
			'flex-width'  => true,
		) );

		add_editor_style( array( '/editor-style.css' ) );
		add_action('wp_ajax_eauto_repair_dismissable_notice', 'eauto_repair_dismissable_notice');
		add_action( 'wp_ajax_tm-check-plugin-exists', 'tm_check_plugin_exists' );
		add_action( 'wp_ajax_tm_install_and_activate_plugin', 'tm_install_and_activate_plugin' );

	}
endif;
add_action( 'after_setup_theme', 'eauto_repair_setup' );


if ( ! function_exists( 'eauto_repair_file_setup' ) ) :

	function eauto_repair_file_setup() {

		define( 'FREE_MNSSP_API_URL', 'https://license.themagnifico.net/api/general/' );

		if ( ! defined( 'EAUTO_REPAIR_CONTACT_SUPPORT' ) ) {
			define('EAUTO_REPAIR_CONTACT_SUPPORT',__('https://wordpress.org/support/theme/eauto-repair/','eauto-repair'));
		}
		if ( ! defined( 'EAUTO_REPAIR_REVIEW' ) ) {
			define('EAUTO_REPAIR_REVIEW',__('https://wordpress.org/support/theme/eauto-repair/reviews/','eauto-repair'));
		}
		if ( ! defined( 'EAUTO_REPAIR_LIVE_DEMO' ) ) {
			define('EAUTO_REPAIR_LIVE_DEMO',__('https://demo.themagnifico.net/eauto-repair/','eauto-repair'));
		}
		if ( ! defined( 'EAUTO_REPAIR_GET_PREMIUM_PRO' ) ) {
			define('EAUTO_REPAIR_GET_PREMIUM_PRO',__('https://www.themagnifico.net/products/eauto-repair-wordpress-theme','eauto-repair'));
		}
		if ( ! defined( 'EAUTO_REPAIR_PRO_DOC' ) ) {
			define('EAUTO_REPAIR_PRO_DOC',__('https://demo.themagnifico.net/eard/wathiqa/eauto-repair-pro-doc/','eauto-repair'));
		}
		if ( ! defined( 'EAUTO_REPAIR_FREE_DOC' ) ) {
			define('EAUTO_REPAIR_FREE_DOC',__('https://demo.themagnifico.net/eard/wathiqa/eauto-repair-free-doc/','eauto-repair'));
		}
		if ( ! defined( 'EAUTO_REPAIR_BUNDLE_LINK' ) ) {
			define('EAUTO_REPAIR_BUNDLE_LINK',__('https://www.themagnifico.net/products/wordpress-theme-bundle','eauto-repair'));
		}

		/**
		 * Customizer additions.
		 */
		require get_template_directory() . '/inc/customizer.php';
	}
endif;
add_action( 'after_setup_theme', 'eauto_repair_file_setup' );


/**
 * Custom template tags for this theme.
 */
require get_template_directory() . '/inc/template-tags.php';

/**
 * Implement the Custom Header feature.
 */
require get_template_directory() . '/inc/custom-header.php';

/**
 * Functions which enhance the theme by hooking into WordPress.
 */
require get_template_directory() . '/inc/template-functions.php';

require get_template_directory() . '/inc/tgm.php';

/**
 * Menu
 */

require get_template_directory() . '/inc/class-navigation-menu.php';

function eauto_repair_content_width() {
	$GLOBALS['content_width'] = apply_filters( 'eauto_repair_content_width', 1170 );
}
add_action( 'after_setup_theme', 'eauto_repair_content_width', 0 );

function tm_install_and_activate_plugin() {

	if ( ! isset( $_POST['_ajax_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_ajax_nonce'] ) ), 'theme_importer_nonce' ) ) {
		wp_send_json_error( 'Invalid nonce.' );
		wp_die();
	}

	if ( ! current_user_can( 'install_plugins' ) ) {
		wp_send_json_error( 'Insufficient permissions.' );
		wp_die();
	}

	$post_plugin_details = isset( $_POST['plugin_details'] ) ? $_POST['plugin_details'] : array();
	$plugin_text_domain = isset( $post_plugin_details['plugin_text_domain'] ) ? sanitize_text_field( wp_unslash( $post_plugin_details['plugin_text_domain'] ) ) : '';
	$plugin_main_file		=	isset( $post_plugin_details['plugin_main_file'] ) ? sanitize_text_field( wp_unslash( $post_plugin_details['plugin_main_file'] ) ) : '';
	$plugin_url					=	isset( $post_plugin_details['plugin_url'] ) ? esc_url_raw( wp_unslash( $post_plugin_details['plugin_url'] ) ) : '';

	$plugin = array(
		'text_domain'	=> $plugin_text_domain,
		'path' 				=> $plugin_url,
		'install' 		=> $plugin_text_domain . '/' . $plugin_main_file
	);

	wp_cache_flush();

	$plugin_path = plugin_basename( trim( $plugin['install'] ) );


	$activate_plugin = activate_plugin( $plugin_path );

	// activate_plugin() returns WP_Error on failure, null on success
	if ( is_wp_error( $activate_plugin ) ) {
		wp_send_json_error( $activate_plugin->get_error_message() );
		wp_die();
	}

	$msg = 'installed';

	$response = array( 'status' => true, 'msg' => $msg );
	wp_send_json( $response );
	exit;
}

function tm_check_plugin_exists() {
		if ( ! isset( $_POST['_ajax_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['_ajax_nonce'] ) ), 'theme_importer_nonce' ) ) {
			wp_send_json_error( 'Invalid nonce.' );
			wp_die();
		}
		if ( ! current_user_can( 'install_plugins' ) ) {
			wp_send_json_error( 'Insufficient permissions.' );
			wp_die();
		}
		$plugin_text_domain = isset( $_POST['plugin_text_domain'] ) ? sanitize_text_field( wp_unslash( $_POST['plugin_text_domain'] ) ) : '';
		$main_plugin_file 	= isset( $_POST['main_plugin_file'] ) ? sanitize_text_field( wp_unslash( $_POST['main_plugin_file'] ) ) : '';
		$plugin_path = $plugin_text_domain . '/' . $main_plugin_file;

		$get_plugins					= get_plugins();
		$is_plugin_installed	= false;
		$activation_status 		= false;
		if ( isset( $get_plugins[$plugin_path] ) ) {
		$is_plugin_installed = true;

		$activation_status = is_plugin_active( $plugin_path );
		}
		wp_send_json_success(
		array(
		'install_status'  =>	$is_plugin_installed,
			'active_status'		=>	$activation_status,
			'plugin_path'			=>	$plugin_path,
			'plugin_slug'			=>	$plugin_text_domain
		)
		);
}

/**
 * Register widget area.
 *
 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
 */
function eauto_repair_widgets_init() {

	require_once get_theme_file_path( 'inc/wptt-webfont-loader.php' );
	
	register_sidebar( array(
		'name'          => esc_html__( 'Sidebar', 'eauto-repair' ),
		'id'            => 'sidebar',
		'description'   => esc_html__( 'Add widgets here.', 'eauto-repair' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s">',
		'after_widget'  => '</section>',
		'before_title'  => '<h5 class="widget-title">',
		'after_title'   => '</h5>',
	) );

	register_sidebar( array(
		'name'          => esc_html__( 'Sidebar 1', 'eauto-repair' ),
		'id'            => 'sidebar1',
		'description'   => esc_html__( 'Add widgets here.', 'eauto-repair' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s">',
		'after_widget'  => '</section>',
		'before_title'  => '<h5 class="widget-title">',
		'after_title'   => '</h5>',
	) );

	register_sidebar( array(
		'name'          => esc_html__( 'Sidebar 2', 'eauto-repair' ),
		'id'            => 'sidebar2',
		'description'   => esc_html__( 'Add widgets here.', 'eauto-repair' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s">',
		'after_widget'  => '</section>',
		'before_title'  => '<h5 class="widget-title">',
		'after_title'   => '</h5>',
	) );

	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 1', 'eauto-repair' ),
		'id'            => 'eauto-repair-footer1',
		'description'   => '',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h5 class="footer-column-widget-title">',
		'after_title'   => '</h5>',
	) );

	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 2', 'eauto-repair' ),
		'id'            => 'eauto-repair-footer2',
		'description'   => '',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h5 class="footer-column-widget-title">',
		'after_title'   => '</h5>',
	) );

	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 3', 'eauto-repair' ),
		'id'            => 'eauto-repair-footer3',
		'description'   => '',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h5 class="footer-column-widget-title">',
		'after_title'   => '</h5>',
	) );
}
add_action( 'widgets_init', 'eauto_repair_widgets_init' );

/**
 * Enqueue scripts and styles.
 */
function eauto_repair_scripts() {

	wp_enqueue_style(
		'poppins',
		eauto_repair_wptt_get_webfont_url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'),  // font-family: "Poppins", sans-serif;
		array(),
		'1.0'
	);

	wp_enqueue_style( 'eauto-repair-block-editor-style', get_theme_file_uri('/assets/css/block-editor-style.css') );

	// load bootstrap css
    wp_enqueue_style( 'bootstrap-css', get_template_directory_uri() . '/assets/css/bootstrap.css');

  	wp_enqueue_style( 'eauto-repair-style', get_stylesheet_uri() );
	require get_parent_theme_file_path( '/custom-option.php' );
	wp_add_inline_style( 'eauto-repair-style',$eauto_repair_theme_css );

	// fontawesome
	wp_enqueue_style( 'fontawesome-style', get_template_directory_uri() .'/assets/css/fontawesome/css/all.css' );

    wp_enqueue_script('eauto-repair-theme-js', get_template_directory_uri() . '/assets/js/theme-script.js', array('jquery'), '', true );

 	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
		wp_enqueue_script( 'comment-reply' );
	}
}
add_action( 'wp_enqueue_scripts', 'eauto_repair_scripts' );

/**
 * Enqueue Preloader.
 */
function eauto_repair_preloader() {

  $eauto_repair_theme_color_css = '';
  $eauto_repair_preloader_bg_color = get_theme_mod('eauto_repair_preloader_bg_color');
  $eauto_repair_preloader_dot_1_color = get_theme_mod('eauto_repair_preloader_dot_1_color');
  $eauto_repair_preloader_dot_2_color = get_theme_mod('eauto_repair_preloader_dot_2_color');
  $eauto_repair_logo_max_height = get_theme_mod('eauto_repair_logo_max_height');

  	if(get_theme_mod('eauto_repair_logo_max_height') == '') {
		$eauto_repair_logo_max_height = '200';
	}

	if(get_theme_mod('eauto_repair_preloader_bg_color') == '') {
		$eauto_repair_preloader_bg_color = '#0054EF';
	}
	if(get_theme_mod('eauto_repair_preloader_dot_1_color') == '') {
		$eauto_repair_preloader_dot_1_color = '#ffffff';
	}
	if(get_theme_mod('eauto_repair_preloader_dot_2_color') == '') {
		$eauto_repair_preloader_dot_2_color = '#222222';
	}
	$eauto_repair_theme_color_css = '
		.custom-logo-link img{
			max-height: '.esc_attr($eauto_repair_logo_max_height).'px;
	 	}
		.loading{
			background-color: '.esc_attr($eauto_repair_preloader_bg_color).';
		 }
		 @keyframes loading {
		  0%,
		  100% {
		  	transform: translatey(-2.5rem);
		    background-color: '.esc_attr($eauto_repair_preloader_dot_1_color).';
		  }
		  50% {
		  	transform: translatey(2.5rem);
		    background-color: '.esc_attr($eauto_repair_preloader_dot_2_color).';
		  }
		}
	';
    wp_add_inline_style( 'eauto-repair-style',$eauto_repair_theme_color_css );

}
add_action( 'wp_enqueue_scripts', 'eauto_repair_preloader' );

function eauto_repair_sanitize_select( $input, $setting ){
    $input = sanitize_key($input);
    $choices = $setting->manager->get_control( $setting->id )->choices;
    return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
}

function eauto_repair_sanitize_checkbox( $input ) {
  // Boolean check
  return ( ( isset( $input ) && true == $input ) ? true : false );
}

/*radio button sanitization*/
function eauto_repair_sanitize_choices( $input, $setting ) {
    global $wp_customize;
    $control = $wp_customize->get_control( $setting->id );
    if ( array_key_exists( $input, $control->choices ) ) {
        return $input;
    } else {
        return $setting->default;
    }
}

function eauto_repair_sanitize_number_range( $number, $setting ) {
	
	// Ensure input is an absolute integer.
	$number = absint( $number );
	
	// Get the input attributes associated with the setting.
	$atts = $setting->manager->get_control( $setting->id )->input_attrs;
	
	// Get minimum number in the range.
	$min = ( isset( $atts['min'] ) ? $atts['min'] : $number );
	
	// Get maximum number in the range.
	$max = ( isset( $atts['max'] ) ? $atts['max'] : $number );
	
	// Get step.
	$step = ( isset( $atts['step'] ) ? $atts['step'] : 1 );
	
	// If the number is within the valid range, return it; otherwise, return the default
	return ( $min <= $number && $number <= $max && is_int( $number / $step ) ? $number : $setting->default );
}

function eauto_repair_sanitize_number_absint( $number, $setting ) {
	// Ensure $number is an absolute integer (whole number, zero or greater).
	$number = absint( $number );

	// If the input is an absolute integer, return it; otherwise, return the default
	return ( $number ? $number : $setting->default );
}

// Change number or products per row to 3
add_filter('loop_shop_columns', 'eauto_repair_loop_columns');
if (!function_exists('eauto_repair_loop_columns')) {
	function eauto_repair_loop_columns() {
		$columns = get_theme_mod( 'eauto_repair_products_per_row', 3 );
		return $columns; // 3 products per row
	}
}

//Change number of products that are displayed per page (shop page)
add_filter( 'loop_shop_per_page', 'eauto_repair_shop_per_page', 9 );
function eauto_repair_shop_per_page( $cols ) {
  	$cols = get_theme_mod( 'eauto_repair_product_per_page', 9 );
	return $cols;
}

if ( class_exists( 'WP_Customize_Control' ) ) {
	// Image Toggle Radio Buttpon
	class Eauto_Repair_Image_Radio_Control extends WP_Customize_Control {

	    public function render_content() {
	 
	        if (empty($this->choices))
	            return;
	 
	        $name = '_customize-radio-' . $this->id;
	        ?>
	        <span class="customize-control-title"><?php echo esc_html($this->label); ?></span>
	        <ul class="controls" id='eauto-repair-img-container'>
	            <?php
	            foreach ($this->choices as $value => $label) :
	                $class = ($this->value() == $value) ? 'eauto-repair-radio-img-selected eauto-repair-radio-img-img' : 'eauto-repair-radio-img-img';
	                ?>
	                <li style="display: inline;">
	                    <label>
	                        <input <?php $this->link(); ?>style = 'display:none' type="radio" value="<?php echo esc_attr($value); ?>" name="<?php echo esc_attr($name); ?>" <?php
	                          	$this->link();
	                          	checked($this->value(), $value);
	                          	?> />
	                        <img src='<?php echo esc_url($label); ?>' class='<?php echo esc_attr($class); ?>' />
	                    </label>
	                </li>
	                <?php
	            endforeach;
	            ?>
	        </ul>
	        <?php
	    } 
	}
}

/**
 * Enqueue S Header.
 */
function eauto_repair_sticky_header() {

	$eauto_repair_sticky_header = get_theme_mod('eauto_repair_sticky_header');

	$eauto_repair_custom_style= "";

	if($eauto_repair_sticky_header != true){

		$eauto_repair_custom_style .='.stick_header{';

			$eauto_repair_custom_style .='position: static;';

		$eauto_repair_custom_style .='}';
	}

	wp_add_inline_style( 'eauto-repair-style',$eauto_repair_custom_style );

}
add_action( 'wp_enqueue_scripts', 'eauto_repair_sticky_header' );

/**
 * Get CSS
 */

function eauto_repair_getpage_css($hook) {
	wp_register_script( 'admin-notice-script', get_template_directory_uri() . '/inc/admin/js/admin-notice-script.js', array( 'jquery' ) );
   	wp_localize_script('admin-notice-script','eauto_repair',
		array('admin_ajax'	=>	admin_url('admin-ajax.php'),'wpnonce'  =>	wp_create_nonce('eauto_repair_dismissed_notice_nonce')
		)
	);
	wp_enqueue_script('admin-notice-script');

    wp_localize_script( 'admin-notice-script', 'eauto_repair_ajax_object',
        array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )
    );
	if ( 'appearance_page_eauto-repair-info' != $hook ) {
		return;
	}
}
add_action( 'admin_enqueue_scripts', 'eauto_repair_getpage_css' );

//Admin Notice For Getstart
function eauto_repair_ajax_notice_handler() {
	if (!wp_verify_nonce($_POST['wpnonce'], 'eauto_repair_dismissed_notice_nonce')) {
		exit;
	}
    if ( isset( $_POST['type'] ) ) {
        $type = sanitize_text_field( wp_unslash( $_POST['type'] ) );
        update_option( 'dismissed-' . $type, TRUE );
    }
}
add_action( 'wp_ajax_eauto_repair_dismissed_notice_handler', 'eauto_repair_ajax_notice_handler' );

function eauto_repair_deprecated_hook_admin_notice() {

    $eauto_repair_dismissed = get_user_meta(get_current_user_id(), 'eauto_repair_dismissable_notice', true);
    if ( !$eauto_repair_dismissed) { ?>
        <div class="updated notice notice-success is-dismissible notice-get-started-class" data-notice="get_started" style="background: #f7f9f9; padding: 20px 10px; display: flex;">
	    	<div class="tm-admin-image">
	    		<img style="width: 100%;max-width: 320px;line-height: 40px;display: inline-block;vertical-align: top;border: 2px solid #ddd;border-radius: 4px;" src="<?php echo esc_url(get_stylesheet_directory_uri()) .'/screenshot.png'; ?>" />
	    	</div>
	    	<div class="tm-admin-content" style="padding-left: 30px; align-self: center">
	    		<h2 style="font-weight: 600;line-height: 1.3; margin: 0px;"><?php esc_html_e('Thank You For Choosing ', 'eauto-repair'); ?><?php echo esc_html( wp_get_theme() ); ?></h2>
	    		<p style="color: #3c434a; font-weight: 400; margin-bottom: 30px;"><?php esc_html_e('Get Started With Theme By Clicking On Getting Started.', 'eauto-repair'); ?></p>
	        	<a class="admin-notice-btn button button-primary button-hero" href="<?php echo esc_url( admin_url( 'themes.php?page=eauto-repair-info.php' )); ?>"><?php esc_html_e( 'Get started', 'eauto-repair' ) ?></a>
	        	<a class="admin-notice-btn button button-primary button-hero notice-pro-btn" target="_blank" href="<?php echo esc_url( EAUTO_REPAIR_GET_PREMIUM_PRO ); ?>"><?php esc_html_e( 'Get Premium ', 'eauto-repair' ) ?></a>
	        	<a class="admin-notice-btn button button-primary button-hero notice-bundle-btn" target="_blank" href="<?php echo esc_url( EAUTO_REPAIR_BUNDLE_LINK ); ?>"><?php esc_html_e( 'Buy All Themes - 120+ Templates', 'eauto-repair' ) ?></a>
	        	<span style="padding-top: 15px; display: inline-block; padding-left: 8px;">
	        	<span class="dashicons dashicons-admin-links"></span>
	        	<a class="admin-notice-btn"	 target="_blank" href="<?php echo esc_url( EAUTO_REPAIR_LIVE_DEMO ); ?>"><?php esc_html_e( 'View Demo', 'eauto-repair' ) ?></a>
	        	</span>
	    	</div>
        </div>
    <?php }
}

add_action( 'admin_notices', 'eauto_repair_deprecated_hook_admin_notice' );

function eauto_repair_switch_theme() {
    delete_user_meta(get_current_user_id(), 'eauto_repair_dismissable_notice');
}
add_action('after_switch_theme', 'eauto_repair_switch_theme');
function eauto_repair_dismissable_notice() {
	check_ajax_referer( 'eauto_repair_dismissed_notice_nonce', 'wpnonce' );
    update_user_meta(get_current_user_id(), 'eauto_repair_dismissable_notice', true);
    wp_die();
}

// Demo Content Code

// Ensure WordPress is loaded
if (!defined('ABSPATH')) {
    exit;
}

// Add the AJAX action to trigger theme mods import
add_action('wp_ajax_import_theme_mods', 'eauto_repair_demo_importer_ajax_handler');

// Handle the AJAX request
function eauto_repair_demo_importer_ajax_handler() {

    check_ajax_referer( 'theme_importer_nonce' );

    if ( ! current_user_can( 'edit_theme_options' ) ) {
        wp_send_json_error( 'Permission denied.' );
        return;
    }

    // Sample data to import
    $theme_mods_data = array(
        'header_textcolor' => '000000',  // Example: change header text color
        'background_color' => 'ffffff',  // Example: change background color
        'custom_logo'      => 123,       // Example: set a custom logo by attachment ID
        'footer_text'      => 'Custom Footer Text', // Example: custom footer text
    );

    // Call the function to import theme mods
    if (eauto_repair_demo_theme_importer($theme_mods_data)) {
        // After importing theme mods, create the menu
        eauto_repair_create_demo_menu();
        wp_send_json_success(array(
        	'msg' => 'Theme mods imported successfully.',
        	'redirect' => home_url()
        ));
    } else {
        wp_send_json_error('Failed to import theme mods.');
    }

    wp_die();
}

// Function to set theme mods
function eauto_repair_demo_theme_importer($import_data) {
    if (is_array($import_data)) {
        foreach ($import_data as $mod_name => $mod_value) {
            set_theme_mod($mod_name, $mod_value);
        }
        return true;
    } else {
        return false;
    }
}

// Function to create demo menu
function eauto_repair_create_demo_menu() {

    // Page import process
    $pages_to_create = array(
        array(
            'title'    => 'Home',
            'slug'     => 'home',
            'template' => 'page-template/home-template.php',
        ),
        array(
            'title'    => 'About',
            'slug'     => 'about',
            'template' => '',
        ),
        array(
            'title'    => 'Services',
            'slug'     => 'services',
            'template' => '',
        ),
        array(
            'title'    => 'Blog',
            'slug'     => 'blog',
            'template' => '',
        ),
        array(
            'title'    => 'Contact',
            'slug'     => 'contact',
            'template' => '',
        ),
    );

    // Loop through each page data to create pages
    foreach ($pages_to_create as $page_data) {
        $page_check_posts = get_posts( array( 'post_type' => 'page', 'title' => $page_data['title'], 'post_status' => 'all', 'numberposts' => 1 ) );
        $page_check = ! empty( $page_check_posts ) ? $page_check_posts[0] : null;
        
        // Check if the page doesn't exist already
        if (!$page_check) {
            $page = array(
                'post_type'    => 'page',
                'post_title'   => $page_data['title'],
                'post_status'  => 'publish',
                'post_author'  => 1,
                'post_slug'    => $page_data['slug'],
            );
            
            // Insert the page and get the inserted page ID
            $page_id = wp_insert_post($page);
            
            // Set the page template
            if ($page_id) {
                add_post_meta($page_id, '_wp_page_template', $page_data['template']);
            }
        }
    }

    // Set 'Home' as the front page
    $home_page_posts = get_posts( array( 'post_type' => 'page', 'title' => 'Home', 'post_status' => 'all', 'numberposts' => 1 ) );
    $home_page = ! empty( $home_page_posts ) ? $home_page_posts[0] : null;
    if ($home_page) {
        update_option('page_on_front', $home_page->ID);
        update_option('show_on_front', 'page');
    }

    // Set 'Blog' as the posts page
    $blog_page_posts = get_posts( array( 'post_type' => 'page', 'title' => 'Blog', 'post_status' => 'all', 'numberposts' => 1 ) );
    $blog_page = ! empty( $blog_page_posts ) ? $blog_page_posts[0] : null;
    if ($blog_page) {
        update_option('page_for_posts', $blog_page->ID);
    }
    // ------- Create Main Menu --------
    $menuname =  'Primary Menu';
    $bpmenulocation = 'primary';
    $menu_exists = wp_get_nav_menu_object($menuname);
    
    if (!$menu_exists) {
        $menu_id = wp_create_nav_menu($menuname);
        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Home','eauto-repair'),
            'menu-item-classes' => 'home',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish'));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' => __('About','eauto-repair'),
            'menu-item-classes' => 'about',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish',
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' => __('Services','eauto-repair'),
            'menu-item-classes' => 'services',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish',
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Blog','eauto-repair'),
            'menu-item-classes' => 'Blog',
            'menu-item-url' => home_url( '/index.php/blog/' ),
            'menu-item-status' => 'publish'
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Contact','eauto-repair'),
            'menu-item-classes' => 'contact',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish'
        ));

        // Assign the menu to the location
        if (!has_nav_menu($bpmenulocation)) {
            $locations = get_theme_mod('nav_menu_locations');
            $locations[$bpmenulocation] = $menu_id;
            set_theme_mod('nav_menu_locations', $locations);
        }
    }

    //Top Header
    set_theme_mod( 'eauto_repair_phone_text', 'Contact Now' );
    set_theme_mod( 'eauto_repair_phone_number', '+11 2233445566' );

    //Banner
    set_theme_mod( 'eauto_repair_banner_section_setting', true );
    set_theme_mod( 'eauto_repair_banner_image', get_template_directory_uri().'/assets/img/banner-img.png' );
    set_theme_mod( 'eauto_repair_banner_sub_heading', 'All Type Services In Mechanic' );
    set_theme_mod( 'eauto_repair_banner_heading', 'We Provide Quality Auto Repair Service' );
    set_theme_mod( 'eauto_repair_banner_content', 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text.' );
    set_theme_mod( 'eauto_repair_banner_button_text1', 'Know More' );
    set_theme_mod( 'eauto_repair_banner_button_url1', '#' );
    set_theme_mod( 'eauto_repair_banner_button_text2', 'Contact Now' );
    set_theme_mod( 'eauto_repair_banner_button_url2', '#' );
    set_theme_mod( 'eauto_repair_banner_emergency_text', '24/7 Emergency' );

    // Service
    set_theme_mod( 'eauto_repair_service_section_setting', true );
    set_theme_mod( 'eauto_repair_service_sub_heading', 'LATEST SERVICE' );
    set_theme_mod( 'eauto_repair_service_heading', 'The Best Services' );
    set_theme_mod( 'eauto_repair_service_category', 'services' );
    set_theme_mod( 'eauto_repair_service_number', '3' );
    set_theme_mod( 'eauto_repair_service_icon1', 'fas fa-car' );
    set_theme_mod( 'eauto_repair_service_icon2', 'fas fa-recycle' );
    set_theme_mod( 'eauto_repair_service_icon3', 'fas fa-car-side' );

    $eauto_repair_post_name_array = array('Ceramic Coating', 'Engine Oil Change', 'Hydro Dripping',);

    // Create a category
    $eauto_repair_category_name = 'Services'; // You can change this name
    $eauto_repair_services_sec_category = wp_create_category($eauto_repair_category_name);

    // Ensure the category is created
    if (is_wp_error($eauto_repair_services_sec_category)) {
        return; // Exit if category creation failed
    }

    // Set theme mod for featured section category
    set_theme_mod('eauto_repair_service_category', $eauto_repair_category_name);

    for ($i = 0; $i < 3; $i++) {
        // Create post object
        $eauto_repair_post_name = $eauto_repair_post_name_array[$i];
        $eauto_repair_content = 'Lorem Ipsum is simply dummy text of the industrys since the unknown.';

        $my_post = array(
            'post_title'    => wp_strip_all_tags($eauto_repair_post_name),
            'post_content'  => $eauto_repair_content,
            'post_status'   => 'publish',
            'post_type'     => 'post',
            'post_category' => array($eauto_repair_services_sec_category),
        );

        // Insert the post into the database
        $post_id = wp_insert_post($my_post);

        if ($post_id) {

	        $image_url = get_template_directory_uri().'/assets/img/service' . $i . '.png';

	        wp_set_object_terms($post_id,'services', 'category');

			$image_id = media_sideload_image($image_url, $post_id, null, 'id');

	        if (!is_wp_error($image_id)) {
	            // Set the downloaded image as the post's featured image
	            set_post_thumbnail($post_id, $image_id);
	        }
      	}
    }

}
// Enqueue necessary scripts
add_action('admin_enqueue_scripts', 'eauto_repair_demo_importer_enqueue_scripts');

function eauto_repair_demo_importer_enqueue_scripts() {
    wp_enqueue_script(
        'demo-theme-importer',
        get_template_directory_uri() . '/assets/js/theme-importer.js', // Path to your JS file
        array('jquery'),
        null,
        true
    );

    wp_enqueue_style('demo-importer-style', get_template_directory_uri() . '/assets/css/importer.css', array(), '');

    // Localize script to pass AJAX URL to JS
    wp_localize_script(
        'demo-theme-importer',
        'demoImporter',
        array(
            'ajax_url' => admin_url('admin-ajax.php'),
            'nonce'    => wp_create_nonce('theme_importer_nonce')
        )
    );
}

/**
 * Theme Info.
 */
function eauto_repair_Theme_Info_load() {
	require get_theme_file_path( '/inc/theme-installation/theme-installation.php' );
}
add_action( 'init', 'eauto_repair_Theme_Info_load' );

// add_action( 'eauto_repair_navigation_action','eauto_repair_single_post_navigation',30 );
if( !function_exists('eauto_repair_content_offcanvas') ):

    // Offcanvas Contents
    function eauto_repair_content_offcanvas(){ ?>

        <div id="offcanvas-menu">
            <div class="offcanvas-wraper">
                <div class="close-offcanvas-menu">
                    <div class="offcanvas-close">
                        <a href="javascript:void(0)" class="skip-link-menu-start"></a>
                        <button type="button" class="button-offcanvas-close">
                            <span class="offcanvas-close-label">
                                <i class="fas fa-times"></i>
                            </span>
                        </button>
                    </div>
                </div>
                <div id="primary-nav-offcanvas" class="offcanvas-item offcanvas-main-navigation">
                    <nav class="primary-menu-wrapper" aria-label="<?php esc_attr_e('Horizontal', 'eauto-repair'); ?>" role="navigation">
                        <ul class="primary-menu theme-menu">
                            <?php
                            if (has_nav_menu('primary')) {
                                wp_nav_menu(
                                    array(
                                        'container' => '',
                                        'items_wrap' => '%3$s',
                                        'theme_location' => 'primary',
                                        'show_toggles' => true,
                                    )
                                );
                            }else{

                                wp_list_pages(
                                    array(
                                        'match_menu_classes' => true,
                                        'show_sub_menu_icons' => true,
                                        'title_li' => false,
                                        'show_toggles' => true,
                                        'walker' => new Eauto_Repair_Menu_Page(),
                                    )
                                );
                            }
                            ?>
                        </ul>
                    </nav><!-- .primary-menu-wrapper -->
                </div>
                <a href="javascript:void(0)" class="skip-link-menu-end"></a>
            </div>
        </div>

    <?php
    }

endif;

add_action( 'eauto_repair_before_footer_content_action','eauto_repair_content_offcanvas',30 );


if ( ! function_exists( 'eauto_repair_sub_menu_toggle_button' ) ) :

    function eauto_repair_sub_menu_toggle_button( $args, $item, $depth ) {

        // Add sub menu toggles to the main menu with toggles
        if ( $args->theme_location == 'primary' && isset( $args->show_toggles ) ) {
            
            // Wrap the menu item link contents in a div, used for positioning
            $args->before = '<div class="submenu-wrapper">';
            $args->after  = '';

            // Add a toggle to items with children
            if ( in_array( 'menu-item-has-children', $item->classes ) ) {

                $toggle_target_string = '.menu-item.menu-item-' . $item->ID . ' > .sub-menu';

                // Add the sub menu toggle with Font Awesome icon
                $args->after .= '<button type="button" class="theme-aria-button submenu-toggle" data-toggle-target="' . esc_attr( $toggle_target_string ) . '" data-toggle-type="slidetoggle" data-toggle-duration="250" aria-expanded="false"><span class="btn__content" tabindex="-1"><span class="screen-reader-text">' . esc_html__( 'Show sub menu', 'eauto-repair' ) . '</span><i class="fas fa-chevron-down"></i></span></button>';

            }

            // Close the wrapper
            $args->after .= '</div><!-- .submenu-wrapper -->';

        } elseif ( $args->theme_location == 'primary' ) {

            if ( in_array( 'menu-item-has-children', $item->classes ) ) {

                $args->before = '<div class="link-icon-wrapper">';
                $args->after  = '<i class="fas fa-chevron-down"></i></div>';

            } else {

                $args->before = '';
                $args->after  = '';

            }

        }

        return $args;

    }

endif;

add_filter( 'nav_menu_item_args', 'eauto_repair_sub_menu_toggle_button', 10, 3 );

add_action('wp_ajax_import_theme_mods', 'eauto_repair_import_function');

function eauto_repair_import_function() {
    check_ajax_referer('your-nonce-key', '_ajax_nonce');
    wp_send_json_success([
        'msg' => 'Demo imported successfully',
        'redirect' => admin_url('themes.php?page=theme-options')
    ]);
}

// Getstart Function


function free_mnssp_get_filtered_products($cursor = '', $search = '', $collection = 'pro') {
    $endpoint_url = FREE_MNSSP_API_URL . 'getFilteredProducts';

    $remote_post_data = array(
        'collectionHandle' => $collection,
        'productHandle' => $search,
        'paginationParams' => array(
            "first" => 12,
            "afterCursor" => $cursor,
            "beforeCursor" => "",
            "reverse" => true
        )
    );

    $body = wp_json_encode($remote_post_data);

    $options = [
        'body' => $body,
        'headers' => [
            'Content-Type' => 'application/json'
        ]
    ];
    $response = wp_remote_post($endpoint_url, $options);

    if (!is_wp_error($response)) {
        $response_body = wp_remote_retrieve_body($response);
        $response_body = json_decode($response_body);

        if (isset($response_body->data) && !empty($response_body->data)) {
            if (isset($response_body->data->products) && !empty($response_body->data->products)) {
                return  array(
                    'products' => $response_body->data->products,
                    'pagination' => $response_body->data->pageInfo
                );
            }
        }
        return [];
    }
    
    return [];
}

function free_mnssp_get_filtered_products_ajax() {
    $cursor = isset($_POST['cursor']) ? sanitize_text_field(wp_unslash($_POST['cursor'])) : '';
    $search = isset($_POST['search']) ? sanitize_text_field(wp_unslash($_POST['search'])) : '';
    $collection = isset($_POST['collection']) ? sanitize_text_field(wp_unslash($_POST['collection'])) : 'pro';

    check_ajax_referer('free_mnssp_create_pagination_nonce_action', 'mnssp_pagination_nonce');

    $get_filtered_products = free_mnssp_get_filtered_products($cursor, $search, $collection);
    ob_start();
    if (isset($get_filtered_products['products']) && !empty($get_filtered_products['products'])) {
        foreach ( $get_filtered_products['products'] as $product ) {

            $product_obj = $product->node;
            
            if (isset($product_obj->inCollection) && !$product_obj->inCollection) {
                continue;
            }

            $product_obj = $product->node;

            $demo_url = isset($product->node->metafield->value) ? $product->node->metafield->value : '';
            $product_url = isset($product->node->onlineStoreUrl) ? $product->node->onlineStoreUrl : '';
            $image_src = isset($product->node->images->edges[0]->node->src) ? $product->node->images->edges[0]->node->src : '';
            $price = isset($product->node->variants->edges[0]->node->price) ? '$' . $product->node->variants->edges[0]->node->price : ''; ?>

            <div class="mnssp-grid-item">
                <div class="mnssp-image-wrap">
                    <img src="<?php echo esc_url($image_src); ?>" alt="<?php echo esc_attr($product_obj->title); ?>">
                    <div class="mnssp-image-overlay">
                        <a class="mnssp-demo-url mnssp-btn" href="<?php echo esc_attr($demo_url); ?>" target="_blank" rel="noopener noreferrer"><?php echo esc_html('Demo'); ?></a>
                        <a class="mnssp-buy-now mnssp-btn" href="<?php echo esc_attr($product_url); ?>" target="_blank" rel="noopener noreferrer"><?php echo esc_html('Buy Now'); ?></a>
                    </div>
                </div>
                <footer>
                    <h3><?php echo esc_html($product_obj->title); ?></h3>
                </footer>
                <div class="mnssp-grid-item-price">Price: <?php echo esc_html($price); ?></div>
            </div>
        <?php }
    }
    $output = ob_get_clean();

    $pagination = isset($get_filtered_products['pagination']) ?  $get_filtered_products['pagination'] : [];
    wp_send_json(array(
        'content' => $output,
        'pagination' => $pagination
    ));
}

add_action('wp_ajax_free_mnssp_get_filtered_products', 'free_mnssp_get_filtered_products_ajax');
add_action('wp_ajax_nopriv_free_mnssp_get_filtered_products', 'free_mnssp_get_filtered_products_ajax');

function free_mnssp_get_collections() {
    
    $endpoint_url = FREE_MNSSP_API_URL . 'getCollections';

    $options = [
        'body' => [],
        'headers' => [
            'Content-Type' => 'application/json'
        ]
    ];
    $response = wp_remote_post($endpoint_url, $options);

    if (!is_wp_error($response)) {
        $response_body = wp_remote_retrieve_body($response);
        $response_body = json_decode($response_body);

        if (isset($response_body->data) && !empty($response_body->data)) {
           return  $response_body->data;
        }
        return  [];
    }

    return  [];
}
