<?php
/**
 * Elegant Jewellery functions and definitions
 * @package Elegant Jewellery
 */

if ( ! function_exists( 'elegant_jewellery_after_theme_support' ) ) :

	function elegant_jewellery_after_theme_support() {
		
		add_theme_support( 'automatic-feed-links' );

		add_theme_support(
			'custom-background',
			array(
				'default-color' => 'ffffff',
			)
		);

		$GLOBALS['content_width'] = apply_filters( 'elegant_jewellery_content_width', 1140 );
		
		add_theme_support( 'post-thumbnails' );

		add_theme_support(
			'custom-logo',
			array(
				'height'      => 270,
				'width'       => 90,
				'flex-height' => true,
				'flex-width'  => true,
			)
		);
		
		add_theme_support( 'title-tag' );

        load_theme_textdomain( 'elegant-jewellery', get_template_directory() . '/languages' );

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

		add_theme_support( 'post-formats', array(
			'video',  
			'audio',  
			'gallery',
			'quote',  
			'image',  
			'link',   
			'status', 
			'aside',  
			'chat',   
		) );
		
		add_theme_support( 'align-wide' );
		add_theme_support( 'responsive-embeds' );
        add_theme_support( 'woocommerce' );
		add_theme_support( 'wp-block-styles' );

		require get_template_directory() . '/inc/metabox.php';
		require get_template_directory() . '/inc/homepage-setup/homepage-setup-settings.php';

		if (! defined( 'ELEGANT_JEWELLERY_BUY_NOW' ) ){
			define('ELEGANT_JEWELLERY_BUY_NOW',__('https://www.omegathemes.com/products/jewelry-store-wordpress-theme','elegant-jewellery'));
		}
		if (! defined( 'ELEGANT_JEWELLERY_SUPPORT_FREE' ) ){
			define('ELEGANT_JEWELLERY_SUPPORT_FREE',__('https://wordpress.org/support/theme/elegant-jewellery/','elegant-jewellery'));
		}
		if (! defined( 'ELEGANT_JEWELLERY_DEMO_PRO' ) ){
			define('ELEGANT_JEWELLERY_DEMO_PRO',__('https://layout.omegathemes.com/jewelry-store/','elegant-jewellery'));
		}
		if (! defined( 'ELEGANT_JEWELLERY_LITE_DOCS_PRO' ) ){
			define('ELEGANT_JEWELLERY_LITE_DOCS_PRO',__('https://layout.omegathemes.com/steps/pro-omega-jewelry-store/','elegant-jewellery'));
		}
		if (! defined('ELEGANT_JEWELLERY_BUNDLE_BUTTON') ){
			define('ELEGANT_JEWELLERY_BUNDLE_BUTTON',__('https://www.omegathemes.com/products/wp-theme-bundle','elegant-jewellery'));
		}
	}

endif;

add_action( 'after_setup_theme', 'elegant_jewellery_after_theme_support' );

/**
 * Register and Enqueue Styles.
 */
function elegant_jewellery_register_styles() {

	wp_enqueue_style( 'dashicons' );

    $elegant_jewellery_theme_version = wp_get_theme()->get( 'Version' );
	$elegant_jewellery_fonts_url = elegant_jewellery_fonts_url();
    if( $elegant_jewellery_fonts_url ){
    	require get_theme_file_path( 'lib/custom/css/wptt-webfont-loader.php' );
        wp_enqueue_style(
			'elegant-jewellery-google-fonts',
			wptt_get_webfont_url( $elegant_jewellery_fonts_url ),
			array(),
			$elegant_jewellery_theme_version
		);
    }
	wp_enqueue_style( 'elegant-jewellery-style', get_stylesheet_uri(), array(), $elegant_jewellery_theme_version );

	wp_enqueue_style( 'elegant-jewellery-style', get_stylesheet_uri() );
	require get_parent_theme_file_path( '/custom_css.php' );
	wp_add_inline_style( 'elegant-jewellery-style',$elegant_jewellery_custom_css );
	wp_enqueue_style(
		'fontawesome-css',
		get_template_directory_uri() . '/assets/css/fontawesome-all.css',
		array(),'4.5.0'
	);

	$elegant_jewellery_css = '';

	if ( get_header_image() ) :

		$elegant_jewellery_css .=  '
			.header-image-box{
				background-image: url('.esc_url(get_header_image()).') !important;
				-webkit-background-size: cover !important;
				-moz-background-size: cover !important;
				-o-background-size: cover !important;
				background-size: cover !important;
				height: 450px;
				display: flex;
				align-items: center;
			}';

	endif;

	wp_add_inline_style( 'elegant-jewellery-style', $elegant_jewellery_css );

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

	wp_enqueue_script( 'imagesloaded' );
    wp_enqueue_script( 'masonry' );
	wp_enqueue_script( 'elegant-jewellery-custom', get_template_directory_uri() . '/lib/custom/js/theme-custom-script.js', array('jquery'), '', 1);
	wp_localize_script(
        'elegant-jewellery-custom',
        'ajax_obj',
        array(
            'ajaxurl' => admin_url('admin-ajax.php')
        )
    );

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

	wp_enqueue_script(
		'elegant-jewellery-custom-js',
		get_template_directory_uri() . '/assets/js/custom.js',
		array()
	);

	wp_enqueue_style( 'bootstrap-style', get_template_directory_uri().'/assets/css/bootstrap.css', array(), $elegant_jewellery_theme_version );

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

    // Global Query
    if( is_front_page() ){

    	$elegant_jewellery_posts_per_page = absint( get_option('posts_per_page') );
        $elegant_jewellery_c_paged = ( get_query_var( 'page' ) ) ? absint( get_query_var( 'page' ) ) : 1;
        $elegant_jewellery_posts_args = array(
            'posts_per_page'        => $elegant_jewellery_posts_per_page,
            'paged'                 => $elegant_jewellery_c_paged,
        );
        $posts_qry = new WP_Query( $elegant_jewellery_posts_args );
        $max = $posts_qry->max_num_pages;

    }else{
        global $wp_query;
        $max = $wp_query->max_num_pages;
        $elegant_jewellery_c_paged = ( get_query_var( 'paged' ) > 1 ) ? get_query_var( 'paged' ) : 1;
    }

    $elegant_jewellery_default = elegant_jewellery_get_default_theme_options();
    $elegant_jewellery_pagination_layout = get_theme_mod( 'elegant_jewellery_pagination_layout',$elegant_jewellery_default['elegant_jewellery_pagination_layout'] );
}

add_action( 'wp_enqueue_scripts', 'elegant_jewellery_register_styles',200 );

function elegant_jewellery_admin_enqueue_scripts_callback() {
    if ( ! did_action( 'wp_enqueue_media' ) ) {
    wp_enqueue_media();
    }
    wp_enqueue_script('elegant-jewellery-uploaderjs', get_stylesheet_directory_uri() . '/lib/custom/js/uploader.js', array(), "1.0", true);
}
add_action( 'admin_enqueue_scripts', 'elegant_jewellery_admin_enqueue_scripts_callback' );

/**
 * Register navigation menus uses wp_nav_menu in five places.
 */
function elegant_jewellery_menus() {

	$elegant_jewellery_locations = array(
		'elegant-jewellery-primary-menu'  => esc_html__( 'Primary Menu', 'elegant-jewellery' ),
	);

	register_nav_menus( $elegant_jewellery_locations );
}

add_action( 'init', 'elegant_jewellery_menus' );

add_filter('loop_shop_columns', 'elegant_jewellery_loop_columns');
if (!function_exists('elegant_jewellery_loop_columns')) {
	function elegant_jewellery_loop_columns() {
		$elegant_jewellery_columns = get_theme_mod( 'elegant_jewellery_per_columns', 3 );
		return $elegant_jewellery_columns;
	}
}

add_filter( 'loop_shop_per_page', 'elegant_jewellery_per_page', 20 );
function elegant_jewellery_per_page( $elegant_jewellery_cols ) {
  	$elegant_jewellery_cols = get_theme_mod( 'elegant_jewellery_product_per_page', 9 );
	return $elegant_jewellery_cols;
}

function elegant_jewellery_products_args( $elegant_jewellery_args ) {

    $elegant_jewellery_args['posts_per_page'] = get_theme_mod( 'elegant_jewellery_custom_related_products_number', 6 );

    $elegant_jewellery_args['columns'] = get_theme_mod( 'elegant_jewellery_custom_related_products_number_per_row', 3 );

    return $elegant_jewellery_args;
}

require get_template_directory() . '/inc/custom-header.php';
require get_template_directory() . '/classes/class-svg-icons.php';
require get_template_directory() . '/classes/class-walker-menu.php';
require get_template_directory() . '/inc/customizer/customizer.php';
require get_template_directory() . '/inc/custom-functions.php';
require get_template_directory() . '/inc/template-tags.php';
require get_template_directory() . '/classes/body-classes.php';
require get_template_directory() . '/inc/widgets/widgets.php';
require get_template_directory() . '/inc/pagination.php';
require get_template_directory() . '/lib/breadcrumbs/breadcrumbs.php';
require get_template_directory() . '/lib/custom/css/dynamic-style.php';
require get_template_directory() . '/inc/general.php';
require get_template_directory() . '/inc/homepage-setup/whizzie.php';
function elegant_jewellery_remove_customize_register() {
    global $wp_customize;

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

}

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

function elegant_jewellery_radio_sanitize(  $elegant_jewellery_input, $elegant_jewellery_setting  ) {
	$elegant_jewellery_input = sanitize_key( $elegant_jewellery_input );
	$elegant_jewellery_choices = $elegant_jewellery_setting->manager->get_control( $elegant_jewellery_setting->id )->choices;
	return ( array_key_exists( $elegant_jewellery_input, $elegant_jewellery_choices ) ? $elegant_jewellery_input : $elegant_jewellery_setting->default );
}

// NOTICE FUNCTION

function elegant_jewellery_admin_notice() { 
    global $pagenow;
    $theme_args = wp_get_theme();
    $meta = get_option( 'elegant_jewellery_admin_notice' );
    $name = $theme_args->get( 'Name' );
    $current_screen = get_current_screen();

    if ( ! $meta ) {
        if ( is_network_admin() ) {
            return;
        }

        if ( ! current_user_can( 'manage_options' ) ) {
            return;
        }

        if ( $current_screen->base != 'appearance_page_elegantjewellery-wizard' ) {
            ?>
            <div class="notice notice-success notice-content">
                <h2><?php esc_html_e('Welcome! Thank you for choosing Elegant Jewellery. Let’s Set Up Your Website!', 'elegant-jewellery') ?> </h2>
                <p><?php esc_html_e('Before you dive into customization, let’s go through a quick setup process to ensure everything runs smoothly. Click below to start setting up your website in minutes!', 'elegant-jewellery') ?> </p>
                <div class="info-link">
                    <a href="<?php echo esc_url( admin_url( 'themes.php?page=elegantjewellery-wizard' ) ); ?>"><?php esc_html_e('Get Started with Elegant Jewellery', 'elegant-jewellery'); ?></a>
					<a href="#" class="notice-bundle" id="bundleTrigger"><?php esc_html_e('Get All WP Themes', 'elegant-jewellery'); ?></a>
					<div class="bundle-overlay" id="bundlePopup">
						<div class="bundle-modal">
							<span class="close-popup">&times;</span>
							<div class="sale-badge"><?php esc_html_e('🔥 MEGA SALE', 'elegant-jewellery'); ?></div>
							<h2><?php esc_html_e('Unlock All Premium WP Themes', 'elegant-jewellery'); ?></h2>
							<p> <?php esc_html_e('Unlock the Full Potential of Your Website with Our 70+ WordPress Themes Bundle', 'elegant-jewellery'); ?></p>
							<ul>
								<li><?php esc_html_e('✔ Expert Support', 'elegant-jewellery'); ?></li>
								<li><?php esc_html_e('✔ Premium Theme ZIP File', 'elegant-jewellery'); ?></li>
								<li><?php esc_html_e('✔ Ready-to-Use Website Templates', 'elegant-jewellery'); ?></li>
								<li><?php esc_html_e('✔ Demo Content (Included in the file)', 'elegant-jewellery'); ?></li>
								<li><?php esc_html_e('✔ Access to the Premium Support Forum', 'elegant-jewellery'); ?></li>
							</ul>
							<a href="<?php echo esc_url( ELEGANT_JEWELLERY_BUNDLE_BUTTON ); ?>" target="_blank" class="bundle-cta"><?php esc_html_e('Get the Bundle Now →', 'elegant-jewellery'); ?></a>
						</div>
					</div>
                </div>
                <p class="dismiss-link"><strong><a href="?elegant_jewellery_admin_notice=1"><?php esc_html_e( 'Dismiss', 'elegant-jewellery' ); ?></a></strong></p>
            </div>
            <?php
        }
    }
}
add_action( 'admin_notices', 'elegant_jewellery_admin_notice' );

if ( ! function_exists( 'elegant_jewellery_update_admin_notice' ) ) :
/**
 * Updating admin notice on dismiss
 */
function elegant_jewellery_update_admin_notice() {
    if ( isset( $_GET['elegant_jewellery_admin_notice'] ) && $_GET['elegant_jewellery_admin_notice'] == '1' ) {
        update_option( 'elegant_jewellery_admin_notice', true );
    }
}
endif;
add_action( 'admin_init', 'elegant_jewellery_update_admin_notice' );

add_action( 'wp_ajax_get_product_rating', 'elegant_jewellery_get_product_rating' );
add_action( 'wp_ajax_nopriv_get_product_rating', 'elegant_jewellery_get_product_rating' );

function elegant_jewellery_get_product_rating() {
    if ( ! isset($_POST['product_id']) ) {
        wp_send_json_error( [ 'message' => 'No product ID given' ] );
    }

    $product_id = intval( $_POST['product_id'] );
    $product    = wc_get_product( $product_id );

    if ( ! $product ) {
        wp_send_json_error( [ 'message' => 'Invalid product' ] );
    }

    $average      = $product->get_average_rating();
    $review_count = $product->get_review_count();

    wp_send_json_success( [
        'average'      => $average,
        'review_count' => $review_count,
    ] );
}

add_filter( 'woocommerce_enable_setup_wizard', '__return_false' );

add_action( 'init', function() {
    update_option( 'elementor_onboard_wizard_completed', 'yes' );
});