get( 'Version' ) ); require_once trailingslashit( get_template_directory() ) . 'inc/template-function.php'; /** * Bootstrap Navigation Walker */ require_once trailingslashit( get_template_directory() ) . 'inc/classes/modules/class-wp-bootstrap-navwalker.php'; /** * Dropdown Menu */ require_once trailingslashit( get_template_directory() ) . 'inc/classes/modules/class-wp-menu-dropdown.php'; /** * Enqueue scripts for Option Page. */ require_once trailingslashit( get_template_directory() ) . 'admin/about/about.php'; /** * Customizer additions. */ require_once trailingslashit( get_template_directory() ). 'admin/icon-picker-control.php'; require_once trailingslashit( get_template_directory() ). 'admin/customizer-repeater/functions.php'; require_once trailingslashit( get_template_directory() ) . 'admin/customizer.php'; /** * Becommerce Store additions. */ function becommerce_store_scripts(){ // Bootstrap wp_enqueue_style( 'bootstrap-css', get_template_directory_uri() . '/assets/css/bootstrap.css', array(), '5.2.3', 'all' ); wp_enqueue_script( 'bootstrap-js', get_template_directory_uri() . '/assets/js/bootstrap.bundle.js', array( 'jquery' ), '5.2.3', true ); //Nice Seelct wp_enqueue_style( 'nice-select-css', get_template_directory_uri() . '/assets/css/nice-select.css', array(), '1.0', 'all' ); wp_enqueue_script( 'nice-select-js', get_template_directory_uri() . '/assets/js/jquery.nice-select.js', array(), '1.0', true ); //Slick wp_enqueue_style( 'slick-css', get_template_directory_uri() . '/assets/css/slick.css', array(), '1.8.1', false ); wp_enqueue_script( 'slick-js', get_template_directory_uri() . '/assets/js/slick.js', array('jquery'), '1.8.1', true ); //animate wp_enqueue_style( 'animate-css', get_template_directory_uri() . '/assets/css/animate.css', array(), '3.5.2', false ); wp_enqueue_script( 'wow-js', get_template_directory_uri() . '/assets/js/wow.js', array('jquery'), '1.3.0', true ); //Fonts wp_enqueue_style( 'bootstrapicons-css', get_template_directory_uri() . '/assets/css/bootstrap-icons.css', array(), '', 'all' ); // Theme's main stylesheet and JS wp_enqueue_style( 'becommerce_store-style', get_stylesheet_uri(), array(), becommerce_store_version, false); wp_enqueue_style( 'becommerce_store-main-style', get_template_directory_uri().'/assets/css/main.css', array(), becommerce_store_version, false ); wp_enqueue_style( 'becommerce_store-color-style', get_template_directory_uri().'/assets/css/color.css', array(), becommerce_store_version, false ); wp_enqueue_script( 'becommerce_store-js', get_template_directory_uri() . '/assets/js/app.js', array(), becommerce_store_version, true ); // Google Fonts wp_enqueue_style( 'Poppins-Family', "https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&family=Crimson+Text:wght@700&family=Heebo:wght@300;400;500;600;700;800;900&family=Jost:wght@400;500;600;700&display=swap" ); wp_localize_script( 'becommerce_store-js', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), ) ); } add_action( 'wp_enqueue_scripts', 'becommerce_store_scripts' ); if ( ! function_exists( 'becommerce_store_config' ) ) : function becommerce_store_config(){ register_nav_menus( array( 'becommerce_store_top_menu' => esc_html__( 'Top Menu', 'becommerce-store' ), 'becommerce_store_main_menu' => esc_html__( 'Main Menu', 'becommerce-store' ), 'becommerce_store_categories_header_menu' => esc_html__( 'Categories Menu', 'becommerce-store' ), 'becommerce_store_side_menu' => esc_html__( 'Side Menu', 'becommerce-store' ), 'becommerce_store_footer_top_menu' => esc_html__( 'Footer Top Menu', 'becommerce-store' ), 'becommerce_store_footer_widget_menu' => esc_html__( 'Footer Widget Menu', 'becommerce-store' ), ) ); // Set up the WordPress core custom background feature. add_theme_support( 'custom-background', apply_filters('becommerce_store_custom_background_args_'.becommerce_store_version, array( 'default-color' => 'ffffff', 'default-image' => '', ) ) ); // Add default posts and comments RSS feed links to head. add_theme_support( 'automatic-feed-links' ); /* * Add post formats */ add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link', 'status', ) ); /* * Switch default core markup for search form, comment form, and comments * to output valid HTML5. */ add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', ) ); /* * Let WordPress manage the document title. * By adding theme support, we declare that this theme does not use a * hard-coded tag in the document head, and expect WordPress to * provide it for us. */ add_theme_support( 'title-tag' ); // Enable support for Post Thumbnails. add_theme_support( 'post-thumbnails' ); /** * Add support for core custom logo. * * @link https://codex.wordpress.org/Theme_Logo */ add_theme_support( 'custom-logo', array( 'height' => 47, 'width' => 247, 'flex-width' => false, 'flex-height' => false, ) ); // This theme is WooCommerce compatible, so we're adding support to WooCommerce add_theme_support( 'woocommerce', array( 'thumbnail_image_width' => 255, 'single_image_width' => 255, 'product_grid' => array( 'default_rows' => 10, 'min_rows' => 5, 'max_rows' => 10, 'default_columns' => 5, 'min_columns' => 5, 'max_columns' => 5, ), ) ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } endif; add_action( 'after_setup_theme', 'becommerce_store_config', 0 ); add_action('init','becommerce_store_init'); function becommerce_store_init(){ remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 ); add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 90 ); } /** * Show cart contents / total Ajax */ add_filter( 'woocommerce_add_to_cart_fragments', 'becommerce_store_woocommerce_header_add_to_cart_fragment' ); function becommerce_store_woocommerce_header_add_to_cart_fragment( $fragments ) { global $woocommerce; ob_start(); ?> <div class="nav-item header-cart"> <a data-bs-toggle="offcanvas" data-bs-target="#minicart" href="#"> <i class="bi bi-cart3"></i><span class="pro-count purple"><?php echo esc_html( WC()->cart->get_cart_contents_count() ); ?></span> <span class="cart-amount"><?php echo WC()->cart->get_cart_subtotal() ; ?></span> </a> </div> <?php $fragments['div.header-cart'] = ob_get_clean(); return $fragments; } /** * Adds a shim to wp_body_open backwards compatibility */ if ( ! function_exists( 'wp_body_open' ) ) { function wp_body_open() { do_action( 'wp_body_open' ); } } ## Tes wishlist //favorite posts array function favorite_id_array() { if (!empty( $_COOKIE['favorite_post_ids'])) { return explode(',', $_COOKIE['favorite_post_ids']); } else { return array(); } } //add to favorite function function add_favorite() { $post_id = (int)$_POST['post_id']; if (!empty($post_id)) { $new_post_id = array( $post_id ); $post_ids = array_merge($new_post_id, favorite_id_array()); $post_ids = array_diff($post_ids, array( '' )); $post_ids = array_unique($post_ids); setcookie('favorite_post_ids', implode(',', $post_ids) , time() + 3600 * 24 * 365, '/'); echo count($post_ids); } die(); } add_action('wp_ajax_favorite', 'add_favorite'); add_action('wp_ajax_nopriv_favorite', 'add_favorite'); //delete from favorite function function delete_favorite() { $post_id = (int)$_POST['post_id']; if (!empty($post_id)) { $favorite_id_array = favorite_id_array(); if (($delete_post_id = array_search($post_id, $favorite_id_array)) !== false) { unset($favorite_id_array[$delete_post_id]); } setcookie('favorite_post_ids', implode(',', $favorite_id_array) , time() + 3600 * 24 * 30, '/'); echo count($favorite_id_array); } die(); } add_action('wp_ajax_delfavorite', 'delete_favorite'); add_action('wp_ajax_nopriv_delfavorite', 'delete_favorite'); /** * Returns product price based on sales. * * @return string */ function becommerce_store_price_show() { global $product; if( $product->is_on_sale() ) { return '<span class="new-price">'.get_woocommerce_currency_symbol().$product->get_sale_price().'</span> <span class="old-price">'.get_woocommerce_currency_symbol().$product->get_regular_price().'</span>'; } else { return $product->get_price_html(); } } // REMOVE SALE BADGE FROM ITS ORIGINAL POSITION remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 ); function disable_woo_commerce_sidebar() { remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10); } add_action('init', 'disable_woo_commerce_sidebar'); function custom_woocommerce_search_query( $query ) { if ( ! is_admin() && $query->is_search && $query->is_main_query() && isset( $_GET['s'] ) ) { // Check if it's a product search (optional, but good practice) if ( isset( $_GET['post_type'] ) && $_GET['post_type'] == 'product' ) { $search_term = sanitize_text_field( $_GET['s'] ); // Modify the query to search in product categories $tax_query = array( 'relation' => 'OR', array( 'taxonomy' => 'product_cat', 'field' => 'name', 'terms' => $search_term, 'operator' => 'LIKE', ), array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $search_term, 'operator' => 'LIKE', ), ); // Combine with existing tax_query if any if ( ! empty( $query->get( 'tax_query' ) ) ) { $existing_tax_query = $query->get( 'tax_query' ); $tax_query = array_merge( $existing_tax_query, $tax_query ); } $query->set( 'tax_query', $tax_query ); // Ensure only products are searched $query->set( 'post_type', array( 'product' ) ); } } } add_action( 'pre_get_posts', 'custom_woocommerce_search_query' );