<?php
/**
 * Home Gardening functions and definitions
 *
 * @package Home Gardening
 */

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

		add_theme_support( 'woocommerce' );

		load_theme_textdomain( 'home-gardening', 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', 'home-gardening' ),
			'menu-2' => esc_html__( 'Footer', 'home-gardening' ),
		) );

		/*
		 * 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( 'home-gardening-1920-550', 1920, 550, true );
		add_image_size( 'home-gardening-1370-550', 1370, 550, true );
		add_image_size( 'home-gardening-590-310', 590, 310, true );
		add_image_size( 'home-gardening-420-380', 420, 380, true );
		add_image_size( 'home-gardening-420-300', 420, 300, true );
		add_image_size( 'home-gardening-420-200', 420, 200, true );
		add_image_size( 'home-gardening-290-150', 290, 150, true );
		add_image_size( 'home-gardening-80-60', 80, 60, true );
		

		add_theme_support( 'align-wide' );
		add_theme_support( 'wp-block-styles' );

		add_theme_support( 'custom-background', apply_filters( 'home_gardening_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('HOME_GARDENING_BUY_NOW',__('https://www.themepixels.net/products/garden-wordpress-theme/','home-gardening'));
		define('HOME_GARDENING_LIVE_DEMO',__('https://themepixels.net/demo-site/home-gardening/','home-gardening'));
		define('HOME_GARDENING_FREE_DOC',__('https://www.themepixels.net/docs/home-gardening-free/','home-gardening'));
		define('HOME_GARDENING_BUNDLE',__('https://www.themepixels.net/products/wp-theme-bundle','home-gardening'));
		define('HOME_GARDENING_THEME_SUPPORT',__('https://wordpress.org/support/theme/home-gardening','home-gardening'));
		define('HOME_GARDENING_COLLECTIONS',__('https://www.themepixels.net/premium-wordpress-themes','home-gardening'));
		/**
		* FREE DEMO CONTENT.
		*/
		require get_template_directory() . '/inc/free-demo-content/home_gardening_config_file.php';
	}
endif;
add_action( 'after_setup_theme', 'home_gardening_setup' );

/**
 * Enqueue scripts and styles.
 */
function home_gardening_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( 'home-gardening-rtl-style', get_template_directory_uri() . '/rtl.css' );
	}

	// Theme stylesheet.
	wp_enqueue_style( 'home-gardening-style', get_stylesheet_uri() );
	require get_parent_theme_file_path( '/extra-pixel-customize.php' );
	wp_add_inline_style( 'home-gardening-style',$home_gardening_pix_theme_css );

	wp_enqueue_style( 'home-gardening-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( 'rajdhani-google-font', 'https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;400;500;600;700&display=swap', false );
	
	wp_enqueue_style( 'roboto-flex-google-font', 'https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&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'     => 'home-gardening-custom',
			'url'    => get_template_directory_uri() . '/assets/js/custom.js',
			'footer' => true
		)
	);

	home_gardening_add_scripts( $scripts );

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

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

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

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

/*radio button sanitization*/
function home_gardening_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 Home Gardening 1.0.0
*/
function home_gardening_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 home_gardening_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 home_gardening_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/home_gardening_themeinfo_page.php';

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


// NOTICE FUNCTION
function home_gardening_activation_notice() {
    if (get_option('home_gardening_notice_dismissed')) {
        return;
    }

    if (isset($_GET['page']) && $_GET['page'] === 'home-gardening-themeinfo-page') {
        return;
    }
    ?>
    <div class="updated notice notice-theme-info-class is-dismissible" data-notice="theme_info">
        <div class="home-gardening-theme-info-notice clearfix">
            <div class="home-gardening-theme-notice-content">
				<div class="notice-content">
					<div class="inner-notice-contetn">
						<h4 class="best-value"><?php esc_html_e( 'Best Value', 'home-gardening' ); ?></h4>
						<h2 class="home-gardening-notice-h2">
							<?php
							printf(
								/* translators: 1: Theme name */
								esc_html__('Get 30+ Premium WordPress Themes in One Bundle', 'home-gardening'), '<strong>' . esc_html(wp_get_theme()->get('Name')) . '</strong>'
							);
							?>
						</h2>

						<p class="home-gardening-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 ', 'home-gardening'), '<strong>' . esc_html(wp_get_theme()->get('Name')) . '</strong>'
							);
							?>
						</p>
					</div>
					<div class="inner-notice-buttons">
						<a class="home-gardening-btn-theme-info button button-primary bundlee" target="_blank" href="<?php echo esc_url(HOME_GARDENING_COLLECTIONS); ?>" id="home-gardening-collection-button"> <?php esc_html_e('View All Themes', 'home-gardening') ?></a>
						<a class="home-gardening-btn-theme-info button button-primary live-demoo" target="_blank" href="<?php echo esc_url(HOME_GARDENING_BUNDLE); ?>" id="home-gardening-bundle-button"> <?php esc_html_e('Buy Bundle', 'home-gardening') ?></a>
					</div>
				</div>
				<div class="middle-box">
					<div class="box-1">
						<div class="box-info">
							<span class="dashicons dashicons-yes-alt"></span>
							<div>
								<p><?php esc_html_e( '30+ Premium', 'home-gardening' ); ?></p>
								<p><?php esc_html_e( 'WordPress Themes', 'home-gardening' ); ?></p>
							</div>
						</div>
						<div class="box-info">
							<span class="dashicons dashicons-yes-alt"></span>
							<div>
								<p><?php esc_html_e( 'Single Theme', 'home-gardening' ); ?></p>
								<p><?php esc_html_e( 'Starting at $40', 'home-gardening' ); ?></p>
							</div>
						</div>
						<div class="box-info">
							<span class="dashicons dashicons-yes-alt"></span>
							<div>
								<p><?php esc_html_e( 'One Time Payment -', 'home-gardening' ); ?></p>
								<p><?php esc_html_e( 'no hidden charges', 'home-gardening' ); ?></p>
							</div>
						</div>
					</div>
					<div class="box-2">
						<p class="box-2-para"><?php esc_html_e( 'Total Value', 'home-gardening' ); ?></p>
						<h4><?php esc_html_e( '$2499', 'home-gardening' ); ?></h4>
						<p><?php esc_html_e( 'Bundle Price', 'home-gardening' ); ?></p>
						<span><sup><?php esc_html_e( '$', 'home-gardening' ); ?></sup><h2><?php esc_html_e( '59', 'home-gardening' ); ?></h2></span>
						<p class="box-para"><?php esc_html_e( 'One Time Payement', 'home-gardening' ); ?></p>
						<p class="box-btn"><?php esc_html_e( 'You Save $2430', 'home-gardening' ); ?></p>
					</div>
				</div>
				<div class="notice-image">
					<img src="<?php echo esc_url( get_stylesheet_directory_uri() . '/assets/images/bundle-img.png' ); ?>" alt="<?php esc_attr_e( 'Theme Screenshot', 'home-gardening' ); ?>">
				</div>
            </div>
        </div>
    </div>
    <?php
}

add_action('admin_notices', 'home_gardening_activation_notice');

add_action('wp_ajax_home_gardening_dismiss_notice', 'home_gardening_dismiss_notice');

function home_gardening_notice_status() {
    delete_option('home_gardening_notice_dismissed');
}
add_action('after_switch_theme', 'home_gardening_notice_status');

function home_gardening_dismiss_notice() {
    update_option('home_gardening_notice_dismissed', true);
    wp_send_json_success();
}

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

function home_gardening_remove_customize_register() {
    global $wp_customize;

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

}

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