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

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

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

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

$Cosmetics_Salon_Loader->cosmetics_salon_register();

if ( ! function_exists( 'cosmetics_salon_setup' ) ) :

	function cosmetics_salon_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( 'cosmetics-salon', 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('cosmetics-salon-featured-header-image', 2000, 660, true);

        register_nav_menus( array(
            'primary' => esc_html__( 'Primary','cosmetics-salon' ),
        ) );

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

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

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

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

		add_editor_style( array( '/editor-style.css' ) );
		add_action('wp_ajax_cosmetics_salon_dismissable_notice', 'cosmetics_salon_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', 'cosmetics_salon_setup' );


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

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

	register_sidebar( array(
		'name'          => esc_html__( 'Footer Column 4', 'cosmetics-salon' ),
		'id'            => 'cosmetics-salon-footer4',
		'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', 'cosmetics_salon_widgets_init' );

if ( class_exists( 'WP_Customize_Control' ) ) {
	// Image Toggle Radio Buttpon
	class Cosmetics_Salon_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='cosmetics-salon-img-container'>
	            <?php
	            foreach ($this->choices as $value => $label) :
	                $class = ($this->value() == $value) ? 'cosmetics-salon-radio-img-selected cosmetics-salon-radio-img-img' : 'cosmetics-salon-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( 'cosmetics_salon_blog_posts_pagination' ) ) {
	function cosmetics_salon_blog_posts_pagination() {
		$pagination_type = get_theme_mod( 'cosmetics_salon_blog_pagination_type', 'blog-nav-numbers' );
		if ( $pagination_type == 'blog-nav-numbers' ) {
			the_posts_pagination();
		} else {
			the_posts_navigation();
		}
	}
}

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

	$cosmetics_salon_sticky_header = get_theme_mod('cosmetics_salon_sticky_header');

	$cosmetics_salon_custom_style= "";

	if($cosmetics_salon_sticky_header != true){

		$cosmetics_salon_custom_style .='.stick_header{';

			$cosmetics_salon_custom_style .='position: static;';

		$cosmetics_salon_custom_style .='}';
	}

	wp_add_inline_style( 'cosmetics-salon-style',$cosmetics_salon_custom_style );

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

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,
		)
	);
}

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

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

	wp_enqueue_style(
		'manrope',
		wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap" rel="stylesheet"' ),
		array(),
		'1.0'
	);

	wp_enqueue_style(
		'cormorant',
		wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300..700;1,300..700&display=swap" rel="stylesheet"' ),
		array(),
		'1.0'
	);

	wp_enqueue_style( 'cosmetics-salon-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.min.css');

    wp_enqueue_style( 'owl.carousel-css', get_template_directory_uri() . '/assets/css/owl.carousel.css');

	wp_enqueue_style( 'cosmetics-salon-style', get_stylesheet_uri() );
	require get_parent_theme_file_path( '/custom-option.php' );
	wp_add_inline_style( 'cosmetics-salon-style',$cosmetics_salon_theme_css );

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

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

    wp_enqueue_script('owl.carousel-js', get_template_directory_uri() . '/assets/js/owl.carousel.js', array('jquery'), '', true );

    wp_enqueue_script('bootstrap-js', get_template_directory_uri() . '/assets/js/bootstrap.min.js', array('jquery'), '', true );

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

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

	$cosmetics_salon_theme_color_css = '';
	$cosmetics_salon_preloader_bg_color = get_theme_mod('cosmetics_salon_preloader_bg_color');
	$cosmetics_salon_preloader_dot_1_color = get_theme_mod('cosmetics_salon_preloader_dot_1_color');
	$cosmetics_salon_preloader_dot_2_color = get_theme_mod('cosmetics_salon_preloader_dot_2_color');
  	$cosmetics_salon_preloader2_dot_color = get_theme_mod('cosmetics_salon_preloader2_dot_color');
	$cosmetics_salon_logo_max_height = get_theme_mod('cosmetics_salon_logo_max_height');
	$cosmetics_salon_scroll_bg_color = get_theme_mod('cosmetics_salon_scroll_bg_color');
	$cosmetics_salon_scroll_color = get_theme_mod('cosmetics_salon_scroll_color');
	$cosmetics_salon_scroll_font_size = get_theme_mod('cosmetics_salon_scroll_font_size');
	$cosmetics_salon_scroll_border_radius = get_theme_mod('cosmetics_salon_scroll_border_radius');
	$cosmetics_salon_related_product_display_setting = get_theme_mod('cosmetics_salon_related_product_display_setting', true);

  	if(get_theme_mod('cosmetics_salon_logo_max_height') == '') {
		$cosmetics_salon_logo_max_height = '100';
	}

	if(get_theme_mod('cosmetics_salon_preloader_dot_1_color') == '') {
		$cosmetics_salon_preloader_dot_1_color = '#ffffff';
	}
	if(get_theme_mod('cosmetics_salon_preloader_dot_2_color') == '') {
		$cosmetics_salon_preloader_dot_2_color = '#222222';
	}

	// Start CSS build
	$cosmetics_salon_theme_color_css = '';

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

	$cosmetics_salon_theme_color_css .= '
		.custom-logo-link img{
			max-height: '.esc_attr($cosmetics_salon_logo_max_height).'px;
	 	}
		.loading, .loading2{
			background-color: '.esc_attr($cosmetics_salon_preloader_bg_color).';
		 }
		 @keyframes loading {
		  0%,
		  100% {
		  	transform: translatey(-2.5rem);
		    background-color: '.esc_attr($cosmetics_salon_preloader_dot_1_color).';
		  }
		  50% {
		  	transform: translatey(2.5rem);
		    background-color: '.esc_attr($cosmetics_salon_preloader_dot_2_color).';
		  }
		}
		.load hr {
			background-color: '.esc_attr($cosmetics_salon_preloader2_dot_color).';
		}
		a#button{
			background-color: '.esc_attr($cosmetics_salon_scroll_bg_color).';
			color: '.esc_attr($cosmetics_salon_scroll_color).' !important;
			font-size: '.esc_attr($cosmetics_salon_scroll_font_size).'px;
			border-radius: '.esc_attr($cosmetics_salon_scroll_border_radius).'%;
		}
	';
    wp_add_inline_style( 'cosmetics-salon-style',$cosmetics_salon_theme_color_css );

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

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


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

function cosmetics_salon_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 cosmetics_salon_preloader1(){
	if(get_theme_mod('cosmetics_salon_preloader_type', 'Preloader 1') == 'Preloader 1' ) {
		return true;
	}
	return false;
}

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

/*dropdown page sanitization*/
function cosmetics_salon_sanitize_dropdown_pages( $page_id, $setting ) {
	$page_id = absint( $page_id );
	return ( 'publish' == get_post_status( $page_id ) ? $page_id : $setting->default );
}

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

/*radio button sanitization*/
function cosmetics_salon_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 cosmetics_salon_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 cosmetics_salon_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', 'cosmetics_salon_loop_columns');
if (!function_exists('cosmetics_salon_loop_columns')) {
	function cosmetics_salon_loop_columns() {
		$columns = get_theme_mod( 'cosmetics_salon_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', 'cosmetics_salon_shop_per_page', 9 );
function cosmetics_salon_shop_per_page( $cols ) {
  	$cols = get_theme_mod( 'cosmetics_salon_product_per_page', 9 );
	return $cols;
}

// Filter to change the number of related products displayed
add_filter( 'woocommerce_output_related_products_args', 'cosmetics_salon_products_args' );
function cosmetics_salon_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 cosmetics_salon_get_page_id_by_title($cosmetics_salon_pagename){

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

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

    return $page_id;
}

function cosmetics_salon_remove_customize_register() {
    global $wp_customize;

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

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

if ( ! function_exists( 'cosmetics_salon_file_setup' ) ) :

	function cosmetics_salon_file_setup() {

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

		if ( ! defined( 'COSMETICS_SALON_CONTACT_SUPPORT' ) ) {
			define('COSMETICS_SALON_CONTACT_SUPPORT',__('https://wordpress.org/support/theme/cosmetics-salon/','cosmetics-salon'));
		}
		if ( ! defined( 'COSMETICS_SALON_REVIEW' ) ) {
			define('COSMETICS_SALON_REVIEW',__('https://wordpress.org/support/theme/cosmetics-salon/reviews/','cosmetics-salon'));
		}
		if ( ! defined( 'COSMETICS_SALON_LIVE_DEMO' ) ) {
			define('COSMETICS_SALON_LIVE_DEMO',__('https://demo.themagnifico.net/cosmetics-salon/','cosmetics-salon'));
		}
		if ( ! defined( 'COSMETICS_SALON_GET_PREMIUM_PRO' ) ) {
			define('COSMETICS_SALON_GET_PREMIUM_PRO',__('https://www.themagnifico.net/products/cosmetics-wordpress-theme/','cosmetics-salon'));
		}
		if ( ! defined( 'COSMETICS_SALON_PRO_DOC' ) ) {
			define('COSMETICS_SALON_PRO_DOC',__('https://demo.themagnifico.net/eard/wathiqa/cosmetics-salon-pro-doc/','cosmetics-salon'));
		}
		if ( ! defined( 'COSMETICS_SALON_FREE_DOC' ) ) {
			define('COSMETICS_SALON_FREE_DOC',__('https://demo.themagnifico.net/eard/wathiqa/cosmetics-salon-free-doc/','cosmetics-salon'));
		}
		if ( ! defined( 'COSMETICS_SALON_BUNDLE_LINK' ) ) {
			define('COSMETICS_SALON_BUNDLE_LINK',__('https://www.themagnifico.net/products/wordpress-theme-bundle','cosmetics-salon'));
		}
		
		/**
		* Customizer additions.
		*/
		require get_template_directory() . '/inc/customizer.php';
	}
endif;
add_action( 'after_setup_theme', 'cosmetics_salon_file_setup' );

/**
 * Get CSS
 */

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

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

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

function cosmetics_salon_deprecated_hook_admin_notice() {

     // Check if the notice has been dismissed by the user
    $dismissed = get_user_meta(get_current_user_id(), 'cosmetics_salon_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 ', 'cosmetics-salon'); ?><?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.', 'cosmetics-salon'); ?></p>
	        	<a class="admin-notice-btn button button-primary button-hero" href="<?php echo esc_url( admin_url( 'themes.php?page=cosmetics-salon-info' )); ?>"><?php esc_html_e( 'Get started', 'cosmetics-salon' ) ?></a>
	        	<a class="admin-notice-btn button button-primary button-hero" target="_blank" href="<?php echo esc_url( COSMETICS_SALON_GET_PREMIUM_PRO ); ?>"><?php esc_html_e( 'Get Premium ', 'cosmetics-salon' ) ?></a>
	        	<a class="admin-notice-btn button button-primary button-hero" target="_blank" href="<?php echo esc_url( COSMETICS_SALON_BUNDLE_LINK ); ?>"><?php esc_html_e( 'Buy All Themes - 130+ Templates', 'cosmetics-salon' ) ?></a>
				<a class="admin-notice-btn button button-primary button-hero" target="_blank" href="<?php echo esc_url( COSMETICS_SALON_LIVE_DEMO ); ?>">
					<span class="dashicons dashicons-admin-links"></span>
					<?php esc_html_e( 'View Demo', 'cosmetics-salon' ) ?>
				</a>
	    	</div>	    	
        </div>
    <?php }
}

add_action( 'admin_notices', 'cosmetics_salon_deprecated_hook_admin_notice' );

function cosmetics_salon_switch_theme() {
    delete_user_meta(get_current_user_id(), 'cosmetics_salon_dismissable_notice');
}
add_action('after_switch_theme', 'cosmetics_salon_switch_theme');
function cosmetics_salon_dismissable_notice() {
	check_ajax_referer( 'cosmetics_salon_dismissed_notice_nonce', 'wpnonce' );
    update_user_meta(get_current_user_id(), 'cosmetics_salon_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', 'demo_importer_ajax_handler');

// Handle the AJAX request
function 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 (demo_theme_importer($theme_mods_data)) {
        // After importing theme mods, create the menu
        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 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 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'    => 'Shop',
	        'slug'     => 'shop',
	        'template' => '',
	    ),
	    array(
	        'title'    => 'Services',
	        'slug'     => 'services',
	        'template' => '',
	    ),
	    array(
	        'title'    => 'Portfolio',
	        'slug'     => 'Portfolio',
	        '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) {
	    $pages_found = get_posts( array(
	        'post_type'   => 'page',
	        'title'       => $page_data['title'],
	        'post_status' => 'all',
	        'numberposts' => 1,
	    ) );
	    $page_check = ! empty( $pages_found ) ? $pages_found[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_name'    => $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 && !empty($page_data['template'])) {
	            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' => 'all', 'numberposts' => 1 ) );
	$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' => 'all', 'numberposts' => 1 ) );
	$blog_page = ! empty( $blog_pages ) ? $blog_pages[0] : null;
	if ($blog_page) {
	    update_option('page_for_posts', $blog_page->ID);
	}

	// ------- Create Primary Menu --------
	$menuname = 'Primary Menu';
	$pmenulocation = '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', 'cosmetics-salon'),
	        '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', 'cosmetics-salon'),
	        'menu-item-classes' => 'abouts',
	        'menu-item-url' => home_url('/about'),
	        'menu-item-status' => 'publish'
	    ));
	    wp_update_nav_menu_item($menu_id, 0, array(
	        'menu-item-title' => __('Shop', 'cosmetics-salon'),
	        'menu-item-classes' => 'shop',
	        'menu-item-url' => home_url('/shop'),
	        'menu-item-status' => 'publish'
	    ));
	    wp_update_nav_menu_item($menu_id, 0, array(
	        'menu-item-title' => __('Services', 'cosmetics-salon'),
	        'menu-item-classes' => 'services',
	        'menu-item-url' => home_url('/services'),
	        'menu-item-status' => 'publish'
	    ));
	    wp_update_nav_menu_item($menu_id, 0, array(
	        'menu-item-title' => __('Portfolio', 'cosmetics-salon'),
	        'menu-item-classes' => 'protfolio',
	        'menu-item-url' => home_url('/protfolio'),
	        'menu-item-status' => 'publish'
	    ));
	    wp_update_nav_menu_item($menu_id, 0, array(
	        'menu-item-title' => __('Blog', 'cosmetics-salon'),
	        'menu-item-classes' => 'blog',
	        'menu-item-url' => home_url('/blog'),
	        'menu-item-status' => 'publish'
	    ));
	    wp_update_nav_menu_item($menu_id, 0, array(
	        'menu-item-title' => __('Contact Us', 'cosmetics-salon'),
	        'menu-item-classes' => 'contact-us',
	        'menu-item-url' => home_url('/contact-us'),
	        'menu-item-status' => 'publish'
	    ));

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

    //Top Header
    set_theme_mod( 'cosmetics_salon_topbar_phone_text', '+91-123-456-789' );
    set_theme_mod( 'cosmetics_salon_header_button_text', 'Book Now' );
    set_theme_mod( 'cosmetics_salon_header_button_url', '#' );

    //Slider

    for($i=1;$i<=3;$i++){
    	
        $title = 'Style Is A Choice Make Yours';
        $content = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';
            // Create post object
        $my_post = array(
			'post_title'    => wp_strip_all_tags( $title ),
			'post_content'  => $content,
			'post_status'   => 'publish',
			'post_type'     => 'page',
        );

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

		if ($post_id) {
		// Set the theme mod for the slider page
		set_theme_mod('cosmetics_salon_top_slider_page' . $i, $post_id);

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

		$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);
		    }
		}
    }

    set_theme_mod( 'cosmetics_salon_social_icon_setting', true);

    set_theme_mod( 'cosmetics_salon_facebook_icon','Facebook');
    set_theme_mod( 'cosmetics_salon_facebook_url','#');

    set_theme_mod( 'cosmetics_salon_twitter_icon','Twitter');
    set_theme_mod( 'cosmetics_salon_twitter_url','#');

    set_theme_mod( 'cosmetics_salon_intagram_icon','Instagram');
    set_theme_mod( 'cosmetics_salon_intagram_url','#');

    set_theme_mod( 'cosmetics_salon_linkedin_icon','Linkedin');
    set_theme_mod( 'cosmetics_salon_linkedin_url','#');

    set_theme_mod( 'cosmetics_salon_pintrest_icon','Pinterest');
    set_theme_mod( 'cosmetics_salon_pintrest_url','#');

    //Product
    set_theme_mod( 'cosmetics_salon_product_section_setting', true);
    set_theme_mod( 'cosmetics_salon_product_section_heading','Products');
    set_theme_mod( 'cosmetics_salon_product_section_sub_heading','Our Products');

    set_theme_mod( 'cosmetics_salon_home_product','Skincare');
    set_theme_mod( 'cosmetics_salon_home_product_per_page','4');

	if ( class_exists( 'WooCommerce' ) ) {

		$cosmetics_salon_review_text = array(
			'Nice product',
			'Good Quality Product',
			'Nice Product. Must buy It.',
			'I like this Product',
			'Nice Product',
		);


		for($i=1;$i<=4;$i++){
	        $cosmetics_salon_title = 'Mirage Manicures';
	        $cosmetics_salon_content = 'Lorem Ipsum has been the industrys standard dummy text ever since the 1500 when an unknown printer took a galley of type and scrambled it to make a type specimen book Lorem Ipsum has been the industrys standard dummy text ever since the 1500 when an unknown printer took a galley of type and scrambled it to make a type specimen book.';
	        $cosmetics_salon_excerpt = 'Lorem Ipsum has been the industrys standard dummy text ever since the 1500 when an unknown printer took a galley of type and scrambled it to make a type specimen book Lorem Ipsum has been the industrys standard dummy text ever since the 1500 when an unknown printer took a galley of type and scrambled it to make a type specimen book.';
	        // Create post object
	        $my_post = array(
	            'post_title'    => wp_strip_all_tags( $cosmetics_salon_title ),
	            'post_content'  => $cosmetics_salon_content,
	            'post_status'   => 'publish',
	            'post_type'     => 'product',
	            'post_excerpt'	=> $cosmetics_salon_excerpt
	        );
	     
	        // Insert the post into the database
	        $post_id = wp_insert_post( $my_post );
	        // array_push( $_product_ids, $post_id );

			for ( $c=0; $c <= 5; $c++ ) {
				$comment_id = wp_insert_comment( array(
					'comment_post_ID'      => $post_id,
					'comment_author'       => get_the_author_meta( 'display_name' ),
					'comment_author_email' => get_the_author_meta( 'user_email' ),
					'comment_content'      => $cosmetics_salon_review_text[$c],
					'comment_parent'       => 0,
					'user_id'              => get_current_user_id(), // <== Important
					'comment_date'         => date('Y-m-d H:i:s'),
					'comment_approved'     => 1,
				) );

				update_comment_meta( $comment_id, 'rating', 
				3 );
			}

			update_post_meta( $post_id, '_regular_price', "52" );
	        update_post_meta( $post_id, '_sale_price', "32" );
	        update_post_meta( $post_id, '_price', "32" );

	        update_post_meta($post_id, 'total_sales', '50');
	        update_post_meta($post_id, '_manage_stock', 'true');
	        update_post_meta($post_id, '_stock', '100');

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

	        wp_set_object_terms($post_id, array('Skincare'), 'product_cat');

	        $image_name= 'product'.$i.'.png';
	        $upload_dir       = wp_upload_dir(); 
	        // Set upload folder
	        $image_data= file_get_contents($image_url); 
	        // Get image data
	        $unique_file_name = wp_unique_filename( $upload_dir['path'], $image_name ); 
	        // Generate unique name
	        $filename= basename( $unique_file_name ); 
	        // Create image file name

	        // Check folder permission and define file location
	        if( wp_mkdir_p( $upload_dir['path'] ) ) {
	        	$file = $upload_dir['path'] . '/' . $filename;
	        } else {
	        	$file = $upload_dir['basedir'] . '/' . $filename;
	    	}

	        // Create the image  file on the server
	        file_put_contents( $file, $image_data );

	        // Check image file type
	        $wp_filetype = wp_check_filetype( $filename, null );

	        // Set attachment data
	        $attachment = array(
	        'post_mime_type' => $wp_filetype['type'],
	        'post_title'     => sanitize_file_name( $filename ),
	        'post_content'   => '',
	        'post_type'     => 'product',
	        'post_status'    => 'inherit'
	        );

	        // Create the attachment
	        $attach_id = wp_insert_attachment( $attachment, $file, $post_id );

	        // Include image.php
	        require_once(ABSPATH . 'wp-admin/includes/image.php');

	        // Define attachment metadata
	        $attach_data = wp_generate_attachment_metadata( $attach_id, $file );

	        // Assign metadata to attachment
	        wp_update_attachment_metadata( $attach_id, $attach_data );

	        // And finally assign featured image to post
	        set_post_thumbnail( $post_id, $attach_id );
	    }
		}
	
}
// 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 cosmetics_salon_theme_info_load() {
	require get_theme_file_path( '/inc/theme-installation/theme-installation.php' );
}
add_action( 'init', 'cosmetics_salon_theme_info_load' );

add_action('wp_ajax_import_theme_mods', 'cosmetics_salon_import_function');

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