<?php
/**
 * Pixel Hair Spa functions and definitions
 *
 * @package Pixel Hair Spa
 */

if ( ! function_exists( 'pixel_hair_spa_setup' ) ) :
	function pixel_hair_spa_setup() {
		
		// Add default posts and comments RSS feed links to head.
		add_theme_support( 'automatic-feed-links' );

		add_theme_support( 'woocommerce' );

		load_theme_textdomain( 'pixel-hair-spa', get_template_directory() . '/languages' );

		/*
		 * Let WordPress manage the document title.
		 * By adding theme support, we declare that this theme does not use a
		 * hard-coded <title> tag in the document head, and expect WordPress to
		 * provide it for us.
		 */
		add_theme_support( 'title-tag' );

		/*
		 * Post thumbnail support should be enabled for pages and posts.
		 */
		add_theme_support( 'post-thumbnails' );

		// This theme uses wp_nav_menu() in one location.
		register_nav_menus( array(
			'menu-1' => esc_html__( 'Primary', 'pixel-hair-spa' ),
			'menu-2' => esc_html__( 'Footer', 'pixel-hair-spa' ),
		) );

		/*
		 * To produce valid HTML5, change the default core markup for the comments, search form, and search form.
		 */
		add_theme_support( 'html5', array(
			'search-form',
			'comment-form',
			'comment-list',
			'gallery',
			'caption',
		) );
		
		/**
		 * Add support for core custom logo.
		 *
		 * @link https://codex.wordpress.org/Theme_Logo
		 */
		add_theme_support( 'custom-logo', array(
			'width'       => 270,
			'height'      => 80,
			'flex-height' => true,
			'flex-width'  => true,
		) );

		// Add theme support for selective refresh for widgets.
		add_theme_support( 'customize-selective-refresh-widgets' );

		// Add custom image size.
		add_image_size( 'pixel-hair-spa-1920-550', 1920, 550, true );
		add_image_size( 'pixel-hair-spa-1370-550', 1370, 550, true );
		add_image_size( 'pixel-hair-spa-590-310', 590, 310, true );
		add_image_size( 'pixel-hair-spa-420-380', 420, 380, true );
		add_image_size( 'pixel-hair-spa-420-300', 420, 300, true );
		add_image_size( 'pixel-hair-spa-420-200', 420, 200, true );
		add_image_size( 'pixel-hair-spa-290-150', 290, 150, true );
		add_image_size( 'pixel-hair-spa-80-60', 80, 60, true );
		
		add_theme_support( 'align-wide' );
		add_theme_support( 'wp-block-styles' );

        add_theme_support( 'custom-background', apply_filters( 'pixel_hair_spa_custom_background', array(
            'default-color' => 'ffffff',
            'default-image' => '',
        )));
        
        add_theme_support( 'responsive-embeds' );

		add_theme_support('custom-header', array(
			'default-image'      => '',
			'width'              => 1920,
			'height'             => 200,
			'flex-height'        => true,
			'flex-width'         => true,
			'uploads'            => true,
		));

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

		define('PIXEL_HAIR_SPA_BUY_NOW',__('https://www.themepixels.net/products/hair-spa-wordpress-theme/','pixel-hair-spa'));
		define('PIXEL_HAIR_SPA_LIVE_DEMO',__('https://www.themepixels.net/demo-site/pixel-hair-spa/','pixel-hair-spa'));
		define('PIXEL_HAIR_SPA_FREE_DOC',__('https://www.themepixels.net/docs/pixel-hair-spa-free/','pixel-hair-spa'));
		define('PIXEL_HAIR_SPA_BUNDLE',__('https://www.themepixels.net/products/wp-theme-bundle/','pixel-hair-spa'));
		define('PIXEL_HAIR_SPA_THEME_SUPPORT',__('https://wordpress.org/support/theme/pixel-hair-spa','pixel-hair-spa'));

		/**
		* FREE DEMO CONTENT.
		*/
		require get_template_directory() . '/inc/free-demo-content/pixel_hair_spa_config_file.php';

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

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

	wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.min.css' );
	if ( is_rtl() ){
		wp_enqueue_style( 'bootstrap-rtl', get_template_directory_uri() . '/assets/bootstrap/css/rtl/bootstrap.min.css' );

		wp_enqueue_style( 'pixel-hair-spa-rtl-style', get_template_directory_uri() . '/rtl.css' );
	}

	// Theme stylesheet.
	wp_enqueue_style( 'pixel-hair-spa-style', get_stylesheet_uri() );
	require get_parent_theme_file_path( '/extra-pixel-customize.php' );
	wp_add_inline_style( 'pixel-hair-spa-style',$pixel_hair_spa_pix_theme_css );

	wp_enqueue_style( 'pixel-hair-spa-style', get_stylesheet_uri() );
	
	wp_enqueue_style( 'fontawesome', get_template_directory_uri() . '/assets/font-awesome/css/all.min.css' );
	
	wp_enqueue_style( 'owl.carousel.css', get_template_directory_uri() . '/assets/css/owl.carousel.css' );
	wp_enqueue_style( 'roboto-google-font', 'https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap', false );

	$scripts = array(
		array(
			'id'     => 'bootstrap',
			'url'    => get_template_directory_uri() . '/assets/bootstrap/js/bootstrap.min.js',
			'footer' => true
		),
		array(
			'id'     => 'owl.carousel.js',
			'url'    => get_template_directory_uri() . '/assets/js/owl.carousel.js',
			'footer' => true
		),
		array(
			'id'     => 'pixel-hair-spa-custom',
			'url'    => get_template_directory_uri() . '/assets/js/custom.js',
			'footer' => true
		)
	);

	pixel_hair_spa_add_scripts( $scripts );

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

// Change number or products per row to 6
	add_filter('loop_shop_columns', 'pixel_hair_spa_loop_columns');
	if (!function_exists('pixel_hair_spa_loop_columns')) {
		function pixel_hair_spa_loop_columns() {
			$pixel_hair_spa_columns = get_theme_mod( 'pixel_hair_spa_per_columns', 3 );
			return $pixel_hair_spa_columns;
		}
	}

	//Change number of products that are displayed per page (shop page)
	add_filter( 'loop_shop_per_page', 'pixel_hair_spa_per_page', 10 );
	function pixel_hair_spa_per_page( $pixel_hair_spa_cols ) {
	  	$pixel_hair_spa_cols = get_theme_mod( 'pixel_hair_spa_product_per_page', 10 );
		return $pixel_hair_spa_cols;
	}

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

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


/**
* Add script
* 
* @since Pixel Hair Spa 1.0.0
*/
function pixel_hair_spa_add_scripts( $scripts ){
	foreach ( $scripts as $key => $value ) {
		wp_enqueue_script( $value['id'] , $value['url'] , array( 'jquery', 'jquery-masonry' ), 0.8, $value['footer'] );
	}
}

/**
 * Sanitizes Image Upload.
 *
 * @param string $input potentially dangerous data.
 */
function pixel_hair_spa_sanitize_image( $input ) {
	$filetype = wp_check_filetype( $input );
	if ( $filetype['ext'] && wp_ext2type( $filetype['ext'] ) === 'image' ) {
		return esc_url( $input );
	}
	return '';
}

// Sanitization function to ensure it's an integer within the range
function pixel_hair_spa_sanitize_number( $input ) {
    $input = absint( $input ); // Convert to a non-negative integer
    return ( $input >= 1 && $input <= 6 ) ? $input : 1; // Return input if within range, or default to 1
}

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

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

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

/**
 * Dynamic CSS.
 */
require get_template_directory() . '/inc/customizer/loader.php';

/**
* GET START.
*/
require get_template_directory() . '/themeinfo/pixel_hair_spa_themeinfo_page.php';

/**
 * Typography Fonts
 */
require get_template_directory() . '/inc/typography-settings/typography-fonts.php';

// NOTICE FUNCTION
function pixel_hair_spa_activation_notice() {

    if ( get_option( 'pixel_hair_spa_notice_dismissed' ) ) {
        return;
    }

    if ( isset( $_GET['page'] ) && $_GET['page'] === 'pixel-hair-spa-themeinfo-page' ) {
        return;
    }
    pixel_hair_spa_theme_notice_content( true, false, true );
}

function pixel_hair_spa_theme_notice_content(
    $pixel_hair_spa_show_theme_info = true,
    $pixel_hair_spa_show_box_1 = false,
    $pixel_hair_spa_show_dismiss = true
) {
?>
	<div class="updated notice notice-theme-info-class <?php echo $pixel_hair_spa_show_dismiss ? 'is-dismissible' : ''; ?>" data-notice="theme_info">
        <div class="pixel-hair-spa-theme-info-notice clearfix">
            <div class="pixel-hair-spa-theme-notice-content">
				<div class="notice-content">
					<div class="inner-notice-contetn">
						<h4 class="best-value"><?php esc_html_e( 'Best Value', 'pixel-hair-spa' ); ?></h4>
						<h2 class="pixel-hair-spa-notice-h2">
							<?php
							printf(
								/* translators: 1: Theme name */
								esc_html__('Get 30+ Premium WordPress Themes in One Bundle', 'pixel-hair-spa'), '<strong>' . esc_html(wp_get_theme()->get('Name')) . '</strong>'
							);
							?>
						</h2>

						<p class="pixel-hair-spa-notice-p">
							<?php
							printf(
								/* translators: 1: Theme name */
								esc_html__('Premium WordPress Themes for Business, Ecommerce, Blogs, Portfolio and more. Our themes are light & easy to customize ', 'pixel-hair-spa'), '<strong>' . esc_html(wp_get_theme()->get('Name')) . '</strong>'
							);
							?>
						</p>
					</div>
					<div class="inner-notice-buttons">
						<?php if ( $pixel_hair_spa_show_theme_info ) : ?>
							<a class="pixel-hair-spa-btn-theme-info button button-primary bundlee"
								href="<?php echo esc_url( admin_url( 'themes.php?page=pixel-hair-spa-themeinfo-page' ) ); ?>">
								<?php esc_html_e( 'Theme Info', 'pixel-hair-spa' ); ?>
							</a>
						<?php endif; ?>
						<a class="pixel-hair-spa-btn-theme-info button button-primary live-demoo" target="_blank" href="<?php echo esc_url(PIXEL_HAIR_SPA_BUY_NOW); ?>" id="pixel-hair-spa-bundle-button"> <?php esc_html_e('Buy Now', 'pixel-hair-spa') ?></a>
						<a class="pixel-hair-spa-btn-theme-info button button-primary bundlee" target="_blank" href="<?php echo esc_url(PIXEL_HAIR_SPA_LIVE_DEMO); ?>" id="pixel-hair-spa-collection-button"> <?php esc_html_e('Live Demo', 'pixel-hair-spa') ?></a>
						<a class="pixel-hair-spa-btn-theme-info button button-primary bundlee" target="_blank" href="<?php echo esc_url(PIXEL_HAIR_SPA_BUNDLE); ?>" 
						id="pixel-hair-spa-collection-button"> <?php esc_html_e('Get Bundle', 'pixel-hair-spa') ?></a>
					</div>
				</div>
				<div class="middle-box">
					<?php if ( $pixel_hair_spa_show_box_1 ) : ?>
						<div class="box-1">
							<div class="box-info">
								<span class="dashicons dashicons-yes-alt"></span>
								<div>
									<p><?php esc_html_e( '30+ Premium', 'pixel-hair-spa' ); ?></p>
									<p><?php esc_html_e( 'WordPress Themes', 'pixel-hair-spa' ); ?></p>
								</div>
							</div>
							<div class="box-info">
								<span class="dashicons dashicons-yes-alt"></span>
								<div>
									<p><?php esc_html_e( 'Single Theme', 'pixel-hair-spa' ); ?></p>
									<p><?php esc_html_e( 'Starting at $40', 'pixel-hair-spa' ); ?></p>
								</div>
							</div>
							<div class="box-info">
								<span class="dashicons dashicons-yes-alt"></span>
								<div>
									<p><?php esc_html_e( 'One Time Payment -', 'pixel-hair-spa' ); ?></p>
									<p><?php esc_html_e( 'no hidden charges', 'pixel-hair-spa' ); ?></p>
								</div>
							</div>
						</div>
					<?php endif; ?>
					<div class="box-2">
						<p class="box-2-para"><?php esc_html_e( 'Total Value', 'pixel-hair-spa' ); ?></p>
						<h4><?php esc_html_e( '$2499', 'pixel-hair-spa' ); ?></h4>
						<p><?php esc_html_e( 'Bundle Price', 'pixel-hair-spa' ); ?></p>
						<span><sup><?php esc_html_e( '$', 'pixel-hair-spa' ); ?></sup><h2><?php esc_html_e( '59', 'pixel-hair-spa' ); ?></h2></span>
						<p class="box-para"><?php esc_html_e( 'One Time Payement', 'pixel-hair-spa' ); ?></p>
						<p class="box-btn"><?php esc_html_e( 'You Save $2430', 'pixel-hair-spa' ); ?></p>
					</div>
				</div>
				<div class="notice-image">
					<a href="<?php echo esc_url( PIXEL_HAIR_SPA_BUNDLE ); ?>" target="_blank" rel="noopener noreferrer">
						<img src="<?php echo esc_url( get_stylesheet_directory_uri() . '/assets/images/bundle-img.png' ); ?>" alt="<?php esc_attr_e( 'Theme Screenshot', 'pixel-hair-spa' ); ?>">
					</a>
				</div>
            </div>
        </div>
    </div>
<?php
}
add_action('admin_notices', 'pixel_hair_spa_activation_notice');

add_action('wp_ajax_pixel_hair_spa_dismiss_notice', 'pixel_hair_spa_dismiss_notice');

function pixel_hair_spa_notice_status() {
    delete_option('pixel_hair_spa_notice_dismissed');
}
add_action('after_switch_theme', 'pixel_hair_spa_notice_status');

function pixel_hair_spa_dismiss_notice() {
    update_option('pixel_hair_spa_notice_dismissed', true);
    wp_send_json_success();
}

function pixel_hair_spa_admin_enqueue_scripts(){
	wp_enqueue_style('pixel-hair-spa-admin-style', esc_url( get_template_directory_uri() ) . '/assets/css/pixel-hair-spa-notice.css');
	wp_enqueue_script('pixel-hair-spa-dismiss-notice-script', get_stylesheet_directory_uri() . '/assets/js/pixel-hair-spa-notice.js', array('jquery'), null, true);
}
add_action( 'admin_enqueue_scripts', 'pixel_hair_spa_admin_enqueue_scripts' );

function pixel_hair_spa_remove_customize_register() {
    global $wp_customize;

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

}

add_action( 'customize_register', 'pixel_hair_spa_remove_customize_register', 11 );