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

include get_theme_file_path( 'vendor/wptrt/autoload/src/Pet_Accessory_Store_Loader.php' );

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

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

$Pet_Accessory_Store_Loader->pet_accessory_store_register();

if ( ! function_exists( 'pet_accessory_store_setup' ) ) :

	function pet_accessory_store_setup() {

		/*
		 * Enable support for Post Formats.
		 *
		 * See: https://codex.wordpress.org/Post_Formats
		*/
		add_theme_support( 'post-formats', array('image','video','gallery','audio',) );

		load_theme_textdomain( 'pet-accessory-store', get_template_directory() . '/languages' );
		add_theme_support( 'woocommerce' );
		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( 'title-tag' );
		add_theme_support( 'post-thumbnails' );
        add_image_size('pet-accessory-store-featured-header-image', 2000, 660, true);

        register_nav_menus( array(
            'primary' => esc_html__( 'Primary','pet-accessory-store' ),
        ) );

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

		add_theme_support( 'custom-background', apply_filters( 'pet_accessory_store_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_pet_accessory_store_dismissable_notice', 'pet_accessory_store_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', 'pet_accessory_store_setup' );

require_once get_theme_file_path( 'inc/wptt-webfont-loader.php' );

/**
 * 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';

/* TGM. */
require get_parent_theme_file_path( '/inc/tgm.php' );

if ( ! function_exists( 'pet_accessory_store_file_setup' ) ) :

	function pet_accessory_store_file_setup() {

		/**
		 * Customizer additions.
		 */
		require get_template_directory() . '/inc/customizer.php';

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

		if ( ! defined( 'PET_ACCESSORY_STORE_CONTACT_SUPPORT' ) ) {
			define('PET_ACCESSORY_STORE_CONTACT_SUPPORT',__('https://wordpress.org/support/theme/pet-accessory-store/','pet-accessory-store'));
		}
		if ( ! defined( 'PET_ACCESSORY_STORE_REVIEW' ) ) {
			define('PET_ACCESSORY_STORE_REVIEW',__('https://wordpress.org/support/theme/pet-accessory-store/reviews/','pet-accessory-store'));
		}
		if ( ! defined( 'PET_ACCESSORY_STORE_LIVE_DEMO' ) ) {
			define('PET_ACCESSORY_STORE_LIVE_DEMO',__('https://demo.themagnifico.net/pet-accessory-store/','pet-accessory-store'));
		}
		if ( ! defined( 'PET_ACCESSORY_STORE_GET_PREMIUM_PRO' ) ) {
			define('PET_ACCESSORY_STORE_GET_PREMIUM_PRO',__('https://www.themagnifico.net/products/pet-store-wordpress-theme','pet-accessory-store'));
		}
		if ( ! defined( 'PET_ACCESSORY_STORE_PRO_DOC' ) ) {
			define('PET_ACCESSORY_STORE_PRO_DOC',__('https://demo.themagnifico.net/eard/wathiqa/pet-accessory-store-pro-doc/','pet-accessory-store'));
		}
		if ( ! defined( 'PET_ACCESSORY_STORE_FREE_DOC' ) ) {
			define('PET_ACCESSORY_STORE_FREE_DOC',__('https://demo.themagnifico.net/eard/wathiqa/pet-accessory-store-free-doc/','pet-accessory-store'));
		}
		if ( ! defined( 'PET_ACCESSORY_STORE_BUNDLE_LINK' ) ) {
			define('PET_ACCESSORY_STORE_BUNDLE_LINK',__('https://www.themagnifico.net/products/wordpress-theme-bundle','pet-accessory-store'));
		}

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

function tm_install_and_activate_plugin() {

	$post_plugin_details = $_POST['plugin_details'];
	$plugin_text_domain = $post_plugin_details['plugin_text_domain'];
	$plugin_main_file		=	$post_plugin_details['plugin_main_file'];
	$plugin_url					=	$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 );

	if($activate_plugin) {

		echo $activate_plugin;

	} else {
		echo $activate_plugin;
	}

	$msg = 'installed';

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

function tm_check_plugin_exists() {

	check_ajax_referer( 'theme_importer_nonce' );

	if ( ! current_user_can( 'activate_plugins' ) ) {
		wp_send_json_error( array( 'install_status' => false, 'active_status' => false ) );
		return;
	}

	$plugin_text_domain = isset( $_POST['plugin_text_domain'] ) ? sanitize_key( wp_unslash( $_POST['plugin_text_domain'] ) ) : '';
	$main_plugin_file   = isset( $_POST['main_plugin_file'] ) ? sanitize_file_name( 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,
		)
	);
}


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

/**
 * Register widget area.
 *
 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
 */
function pet_accessory_store_widgets_init() {
	register_sidebar( array(
		'name'          => esc_html__( 'Sidebar', 'pet-accessory-store' ),
		'id'            => 'sidebar',
		'description'   => esc_html__( 'Add widgets here.', 'pet-accessory-store' ),
        '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', 'pet-accessory-store' ),
		'id'            => 'sidebar1',
		'description'   => esc_html__( 'Add widgets here.', 'pet-accessory-store' ),
        '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', 'pet-accessory-store' ),
		'id'            => 'sidebar2',
		'description'   => esc_html__( 'Add widgets here.', 'pet-accessory-store' ),
        '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', 'pet-accessory-store' ),
		'id'            => 'pet-accessory-store-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', 'pet-accessory-store' ),
		'id'            => 'pet-accessory-store-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', 'pet-accessory-store' ),
		'id'            => 'pet-accessory-store-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', 'pet_accessory_store_widgets_init' );

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

	wp_enqueue_style(
		'inter',
		wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" rel="stylesheet"' ),
		array(),
		'1.0'
	);

	wp_enqueue_style(
		'libre-baskerville',
		wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap rel="stylesheet"' ),
		array(),
		'1.0'
	);

	wp_enqueue_style( 'pet-accessory-store-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( 'pet-accessory-store-style', get_stylesheet_uri() );
	require get_parent_theme_file_path( '/custom-option.php' );
	wp_add_inline_style( 'pet-accessory-store-style',$pet_accessory_store_theme_css );

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

    wp_enqueue_script('pet-accessory-store-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', 'pet_accessory_store_scripts' );

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

	$pet_accessory_store_theme_color_css = '';
	$pet_accessory_store_preloader_bg_color = get_theme_mod('pet_accessory_store_preloader_bg_color');
	$pet_accessory_store_preloader_dot_1_color = get_theme_mod('pet_accessory_store_preloader_dot_1_color');
	$pet_accessory_store_preloader_dot_2_color = get_theme_mod('pet_accessory_store_preloader_dot_2_color');
	$pet_accessory_store_preloader2_dot_color = get_theme_mod('pet_accessory_store_preloader2_dot_color');
	$pet_accessory_store_logo_max_height = get_theme_mod('pet_accessory_store_logo_max_height');
  	$pet_accessory_store_scroll_bg_color = get_theme_mod('pet_accessory_store_scroll_bg_color');
	$pet_accessory_store_scroll_color = get_theme_mod('pet_accessory_store_scroll_color');
	$pet_accessory_store_scroll_font_size = get_theme_mod('pet_accessory_store_scroll_font_size');
	$pet_accessory_store_scroll_border_radius = get_theme_mod('pet_accessory_store_scroll_border_radius');
    $pet_accessory_store_related_product_display_setting = get_theme_mod('pet_accessory_store_related_product_display_setting', true);

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

	if(get_theme_mod('pet_accessory_store_preloader_dot_1_color') == '') {
		$pet_accessory_store_preloader_dot_1_color = '#ffffff';
	}
	if(get_theme_mod('pet_accessory_store_preloader_dot_2_color') == '') {
		$pet_accessory_store_preloader_dot_2_color = '#222222';
	}

	// Start CSS build
	$pet_accessory_store_theme_color_css = '';

	
	if (!$pet_accessory_store_related_product_display_setting) {
	    $pet_accessory_store_theme_color_css .= '
	        .related.products,
	        .related h2 {
	            display: none !important;
	        }
	    ';
	}

	$pet_accessory_store_theme_color_css .= '
		.custom-logo-link img{
			max-height: '.esc_attr($pet_accessory_store_logo_max_height).'px;
	 	}
		.loading, .loading2{
			background-color: '.esc_attr($pet_accessory_store_preloader_bg_color).';
		 }
		 @keyframes loading {
		  0%,
		  100% {
		  	transform: translatey(-2.5rem);
		    background-color: '.esc_attr($pet_accessory_store_preloader_dot_1_color).';
		  }
		  50% {
		  	transform: translatey(2.5rem);
		    background-color: '.esc_attr($pet_accessory_store_preloader_dot_2_color).';
		  }
		}
		.load hr {
			background-color: '.esc_attr($pet_accessory_store_preloader2_dot_color).';
		}
		a#button{
			background-color: '.esc_attr($pet_accessory_store_scroll_bg_color).';
			color: '.esc_attr($pet_accessory_store_scroll_color).' !important;
			font-size: '.esc_attr($pet_accessory_store_scroll_font_size).'px;
			border-radius: '.esc_attr($pet_accessory_store_scroll_border_radius).'%;
		}
	';
    wp_add_inline_style( 'pet-accessory-store-style',$pet_accessory_store_theme_color_css );

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

if ( class_exists( 'WP_Customize_Control' ) ) {
	// Image Toggle Radio Buttpon
	class Pet_Accessory_Store_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='pet-accessory-store-img-container'>
	            <?php
	            foreach ($this->choices as $value => $label) :
	                $class = ($this->value() == $value) ? 'pet-accessory-store-radio-img-selected pet-accessory-store-radio-img-img' : 'pet-accessory-store-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
	    } 
	}
}

/** * Posts pagination. */
if ( ! function_exists( 'pet_accessory_store_blog_posts_pagination' ) ) {
	function pet_accessory_store_blog_posts_pagination() {
		$pagination_type = get_theme_mod( 'pet_accessory_store_blog_pagination_type', 'blog-nav-numbers' );
		if ( $pagination_type == 'blog-nav-numbers' ) {
			the_posts_pagination();
		} else {
			the_posts_navigation();
		}
	}
}

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

	$pet_accessory_store_sticky_header = get_theme_mod('pet_accessory_store_sticky_header');

	$pet_accessory_store_custom_style= "";

	if($pet_accessory_store_sticky_header != true){

		$pet_accessory_store_custom_style .='.stick_header{';

			$pet_accessory_store_custom_style .='position: static;';

		$pet_accessory_store_custom_style .='}';
	}

	wp_add_inline_style( 'pet-accessory-store-style',$pet_accessory_store_custom_style );

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

function pet_accessory_store_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 pet_accessory_store_sanitize_checkbox( $input ) {
  // Boolean check
  return ( ( isset( $input ) && true == $input ) ? true : false );
}

function pet_accessory_store_preloader1(){
	if(get_theme_mod('pet_accessory_store_preloader_type', 'Preloader 1') == 'Preloader 1' ) {
		return true;
	}
	return false;
}

function pet_accessory_store_preloader2(){
	if(get_theme_mod('pet_accessory_store_preloader_type', 'Preloader 1') == 'Preloader 2' ) {
		return true;
	}
	return false;
}

/*radio button sanitization*/
function pet_accessory_store_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 pet_accessory_store_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 );
}

function pet_accessory_store_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 );
}

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

/** * Posts pagination. */
if ( ! function_exists( 'pet_accessory_store_blog_posts_pagination' ) ) {
	function pet_accessory_store_blog_posts_pagination() {
		$pagination_type = get_theme_mod( 'pet_accessory_store_blog_pagination_type', 'blog-nav-numbers' );
		if ( $pagination_type == 'blog-nav-numbers' ) {
			the_posts_pagination();
		} else {
			the_posts_navigation();
		}
	}
}

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

// Filter to change the number of related products displayed
add_filter( 'woocommerce_output_related_products_args', 'pet_accessory_store_products_args' );
function pet_accessory_store_products_args( $args ) {
    $args['posts_per_page'] = get_theme_mod( 'custom_related_products_number', 6 );
    $args['columns'] = get_theme_mod( 'custom_related_products_number_per_row', 3 );
    return $args;
}

function pet_accessory_store_get_page_id_by_title($pet_accessory_store_pagename){

    $args = array(
        'post_type' => 'page',
        'posts_per_page' => 1,
        'post_status' => 'publish',
        'title' => $pet_accessory_store_pagename
    );
    $query = new WP_Query( $args );

    $page_id = '1';
    if (isset($query->post->ID)) {
        $page_id = $query->post->ID;
    }

    return $page_id;
}

function pet_accessory_store_remove_customize_register() {
    global $wp_customize;

    $wp_customize->remove_setting( 'pro_version_footer_setting' );
    $wp_customize->remove_control( 'pro_version_footer_setting' );

}
add_action( 'customize_register', 'pet_accessory_store_remove_customize_register', 11 );

/**
 * Get CSS
 */

function pet_accessory_store_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','pet_accessory_store',
		array('admin_ajax'	=>	admin_url('admin-ajax.php'),'wpnonce'  =>	wp_create_nonce('pet_accessory_store_dismissed_notice_nonce')
		)
	);
	wp_enqueue_script('admin-notice-script');

    wp_localize_script( 'admin-notice-script', 'pet_accessory_store_ajax_object',
        array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )
    );
	if ( 'appearance_page_pet-accessory-store-info' != $hook ) {
		return;
	}
	wp_enqueue_style( 'pet-accessory-store-demo-style', get_template_directory_uri() . '/assets/css/demo.css' );
}
add_action( 'admin_enqueue_scripts', 'pet_accessory_store_getpage_css' );

//Admin Notice For Getstart
function pet_accessory_store_ajax_notice_handler() {
	check_ajax_referer( 'pet_accessory_store_dismissed_notice_nonce', 'wpnonce' );
    if ( isset( $_POST['type'] ) ) {
        $type = sanitize_text_field( wp_unslash( $_POST['type'] ) );
        update_option( 'dismissed-' . $type, TRUE );
    }
	wp_die();
}

function pet_accessory_store_deprecated_hook_admin_notice() {

     // Check if the notice has been dismissed by the user
    $dismissed = get_user_meta(get_current_user_id(), 'pet_accessory_store_dismissable_notice', true);

    // Exclude the notice from being shown on the "Theme Importer" page
    $current_screen = get_current_screen();
    if ($current_screen && $current_screen->id === 'appearance_page_theme-importer') {
        return; // Don't show the notice on this page
    }

    if (!$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 ', 'pet-accessory-store'); ?><?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.', 'pet-accessory-store'); ?></p>
	        	<a class="admin-notice-btn button button-primary button-hero"
				href="<?php echo esc_url( admin_url( 'themes.php?page=' . wp_get_theme()->get_template() . '-info' ) ); ?>">
					<?php esc_html_e( 'Get Started', 'pet-accessory-store' ); ?>
				</a>
	        	<a class="admin-notice-btn button button-primary button-hero" target="_blank" href="<?php echo esc_url( PET_ACCESSORY_STORE_GET_PREMIUM_PRO ); ?>"><?php esc_html_e( 'Get Premium ', 'pet-accessory-store' ) ?></a>
	        	<a class="admin-notice-btn button button-primary button-hero" target="_blank" href="<?php echo esc_url( PET_ACCESSORY_STORE_BUNDLE_LINK ); ?>"><?php esc_html_e( 'Buy All Themes - 130+ Templates', 'pet-accessory-store' ) ?></a>
                <a class="admin-notice-btn button button-primary button-hero" target="_blank" href="<?php echo esc_url( PET_ACCESSORY_STORE_LIVE_DEMO ); ?>">
                    <span class="dashicons dashicons-admin-links"></span>
                    <?php esc_html_e( 'View Demo', 'pet-accessory-store' ) ?>
                </a>
	    	</div>
        </div>
    <?php }
}

add_action( 'admin_notices', 'pet_accessory_store_deprecated_hook_admin_notice' );

function pet_accessory_store_switch_theme() {
    delete_user_meta(get_current_user_id(), 'pet_accessory_store_dismissable_notice');
}
add_action('after_switch_theme', 'pet_accessory_store_switch_theme');
function pet_accessory_store_dismissable_notice() {
	check_ajax_referer( 'pet_accessory_store_dismissed_notice_nonce', 'wpnonce' );
    update_user_meta(get_current_user_id(), 'pet_accessory_store_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', 'pet_accessory_store_demo_importer_ajax_handler');

// Handle the AJAX request
function pet_accessory_store_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 (pet_accessory_store_demo_theme_importer($theme_mods_data)) {
        // After importing theme mods, create the menu
        pet_accessory_store_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 pet_accessory_store_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 pet_accessory_store_create_demo_menu() {

    // Page import process
    $pages_to_create = array(
        array(
            'title'    => 'Home',
            'slug'     => 'home',
            'template' => 'page-template/home-template.php',
        ),
        array(
            'title'    => 'About Us',
            'slug'     => 'about-us',
            'template' => '',
        ),
        array(
            'title'    => 'Shop',
            'slug'     => 'shop',
            'template' => '',
        ),
        array(
            'title'    => 'Testimonials',
            'slug'     => 'testimonials',
            'template' => '',
        ),
        array(
            'title'    => 'Blogs',
            'slug'     => 'blogs',
            'template' => '',
        ),
        array(
            'title'    => 'Pages',
            'slug'     => 'pages',
            'template' => '',
        ),
        array(
            'title'    => 'Contact Us',
            'slug'     => 'contact-us',
            'template' => '',
        ),
    );

    // Loop through each page data to create pages
    foreach ($pages_to_create as $page_data) {
        $pages_check = get_posts( array( 'post_type' => 'page', 'title' => $page_data['title'], 'post_status' => 'publish', 'posts_per_page' => 1, 'no_found_rows' => true ) );
        $page_check = ! empty( $pages_check ) ? $pages_check[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_pages = get_posts( array( 'post_type' => 'page', 'title' => 'Home', 'post_status' => 'publish', 'posts_per_page' => 1, 'no_found_rows' => true ) );
    $home_page = ! empty( $home_pages ) ? $home_pages[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_pages = get_posts( array( 'post_type' => 'page', 'title' => 'Blog', 'post_status' => 'publish', 'posts_per_page' => 1, 'no_found_rows' => true ) );
    $blog_page = ! empty( $blog_pages ) ? $blog_pages[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','pet-accessory-store'),
            '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 Us','pet-accessory-store'),
            'menu-item-classes' => 'about-us',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish',
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Shop','pet-accessory-store'),
            'menu-item-classes' => 'Shop',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish'
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Testimonials','pet-accessory-store'),
            'menu-item-classes' => 'testimonials',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish'
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Blogs','pet-accessory-store'),
            'menu-item-classes' => 'blogs',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish'
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Pages','pet-accessory-store'),
            'menu-item-classes' => 'pages',
            'menu-item-url' => home_url( '/' ),
            'menu-item-status' => 'publish'
        ));

        wp_update_nav_menu_item($menu_id, 0, array(
            'menu-item-title' =>  __('Contact Us','pet-accessory-store'),
            'menu-item-classes' => 'contact-us',
            '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);
        }
    }
    
    //Header
    set_theme_mod( 'pet_accessory_store_topbar_text', 'Special Collection already Available' );
    set_theme_mod( 'pet_accessory_store_topbar1_wishlist_url', '#' );
    set_theme_mod( 'pet_accessory_store_facebook_url', '#' );
    set_theme_mod( 'pet_accessory_store_twitter_url', '#' );
    set_theme_mod( 'pet_accessory_store_intagram_url', '#' );
    set_theme_mod( 'pet_accessory_store_linkedin_url', '#' );
    set_theme_mod( 'pet_accessory_store_pintrest_url', '#' );

    //Banner
    set_theme_mod( 'pet_accessory_store_banner_short_heading', 'Trusted Pets Company' );
    set_theme_mod( 'pet_accessory_store_banner_heading', 'Make Your Pet Feel Like Home' );
    set_theme_mod( 'pet_accessory_store_banner_content', 'Lorem ipsum dolor sit amet, andes consectetur adipiscing elit, sed desdwsa o eiusmod tempor incididunt ut labore et dolore magna.' );
    set_theme_mod( 'pet_accessory_store_banner_btn_text', 'Shop Now' );
    set_theme_mod( 'pet_accessory_store_banner_btn_url', '#' );
    set_theme_mod( 'pet_accessory_store_review_number', '4.8/5' );
    set_theme_mod( 'pet_accessory_store_review_text', 'Customers Ratings' );
    set_theme_mod( 'pet_accessory_store_list_text_1', '14 Days Free Trial' );
    set_theme_mod( 'pet_accessory_store_list_text_2', 'Fast Delivery' );
    set_theme_mod( 'pet_accessory_store_customer_number', '1.5K' );
    set_theme_mod( 'pet_accessory_store_customer_text', 'Satisfied Customers' );
    set_theme_mod( 'pet_accessory_store_banner_right_short_heading', 'New & Exclusive Pets' );
    set_theme_mod( 'pet_accessory_store_banner_right_heading', 'We Trust Pets Like Family' );
    set_theme_mod( 'pet_accessory_store_banner_right_content', 'Lorem ipsum dolor sit amet, andes consectetur adipiscing elit, sed desdwsa o eiusmod tempor incididunt ut labore et dolore magna.' );
    set_theme_mod( 'pet_accessory_store_banner_center_image', get_template_directory_uri() . '/assets/img/slider.png');
    set_theme_mod( 'pet_accessory_store_customer_image_1', get_template_directory_uri() . '/assets/img/testimonial-1.png');
    set_theme_mod( 'pet_accessory_store_customer_image_2', get_template_directory_uri() . '/assets/img/testimonial-2.png');
    set_theme_mod( 'pet_accessory_store_customer_image_3', get_template_directory_uri() . '/assets/img/testimonial-3.png');
    set_theme_mod( 'pet_accessory_store_customer_image_4', get_template_directory_uri() . '/assets/img/testimonial-4.png');
    set_theme_mod( 'pet_accessory_store_customer_image_5', get_template_directory_uri() . '/assets/img/testimonial-5.png');

 

    //About Us
    set_theme_mod( 'pet_accessory_store_services_short_heading', 'AI ChatBot up 20%' );
    set_theme_mod( 'pet_accessory_store_services_heading', '20% Off On Premium Pets Foods' );
    set_theme_mod( 'pet_accessory_store_services_content', 'As a WordPress developer for over 10 years now, I highly recommend this WordPress theme.' );
    set_theme_mod( 'pet_accessory_store_product_btn_text', 'Read More' );
    set_theme_mod( 'pet_accessory_store_product_btn_url', '#' );

    set_theme_mod( 'pet_accessory_store_services_heading_1', 'Get Free Shipping on Orders Over $50' );
    set_theme_mod( 'pet_accessory_store_services_short_heading_1', 'Weekend Discount' );
    set_theme_mod( 'pet_accessory_store_services_price', '$124' );

    set_theme_mod( 'pet_accessory_store_services_heading_2', 'AI ChatBot up 20%' );
    set_theme_mod( 'pet_accessory_store_services_short_heading_2', '20% Off On Premium Pets Foods' );
    set_theme_mod( 'pet_accessory_store_services_price_2', 'As a WordPress developer for over 10 years now, I highly recommend this WordPress theme.' );


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

function 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 pet_accessory_store_theme_info_load() {
	require get_theme_file_path( '/inc/theme-installation/theme-installation.php' );
}
add_action( 'init', 'pet_accessory_store_theme_info_load' );

add_action('wp_ajax_import_theme_mods', 'pet_accessory_store_import_function');

function pet_accessory_store_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  [];
}