750, 'thumbnail_image_width' => 350, 'product_grid' => array( 'default_columns' => 3, 'default_rows' => 6, 'min_columns' => 1, 'max_columns' => 6, 'min_rows' => 1 ) ) ) ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } add_action( 'after_setup_theme', 'varia_woocommerce_setup' ); /** * Add a custom wrapper for woocomerce content */ function varia_wrapper_start() { echo '
'; } add_action('woocommerce_before_main_content', 'varia_wrapper_start', 10); function varia_wrapper_end() { echo '
'; } add_action('woocommerce_after_main_content', 'varia_wrapper_end', 10); /** * Display category image on category archive */ function varia_category_image() { if ( is_product_category() ){ global $wp_query; $cat = $wp_query->get_queried_object(); $thumbnail_id = get_term_meta( $cat->term_id, 'thumbnail_id', true ); $image = wp_get_attachment_url( $thumbnail_id ); if ( $image ) { echo '' . $cat->name . ''; } } } add_action( 'woocommerce_archive_description', 'varia_category_image', 2 ); /** * Remove WooCommerce Sidebar */ remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 ); /** * Enqueue scripts and styles. */ function varia_woocommerce_scripts() { // WooCommerce styles wp_enqueue_style( 'varia-woocommerce-style', get_stylesheet_directory_uri() . '/style-woocommerce.css', array(), wp_get_theme()->get( 'Version' ) ); // WooCommerce RTL styles wp_style_add_data( 'varia-woocommerce-style', 'rtl', 'replace' ); } add_action( 'wp_enqueue_scripts', 'varia_woocommerce_scripts' ); /** * Setup cart link for main menu */ if ( ! function_exists( 'varia_cart_link' ) ) { /** * Cart Link * Display a link to the cart including the number of items present and the cart total * * @return void * @since 1.0.0 */ function varia_cart_link() { $link_output = sprintf( ' %3$s %4$s %5$s ', esc_url( wc_get_cart_url() ), esc_attr__( 'View your shopping cart', 'varia' ), varia_get_icon_svg( 'shopping_cart', 16 ), wp_kses_post( WC()->cart->get_cart_subtotal() ), wp_kses_data( sprintf( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count(), 'varia' ), WC()->cart->get_cart_contents_count() ) ) ); return $link_output; } } /** * Setup cart fragments */ if ( ! function_exists( 'varia_cart_subtotal_fragment' ) ) { /** * Cart Subtotal Fragments * Ensure cart subtotal amount update when products are added to the cart via AJAX * * @param array $fragments Fragments to refresh via AJAX. * @return array Fragments to refresh via AJAX */ function varia_cart_subtotal_fragment( $fragments ) { ob_start(); echo '' . wp_kses_post( WC()->cart->get_cart_subtotal() ) . ''; $fragments['.woocommerce-cart-subtotal'] = ob_get_clean(); return $fragments; } } if ( ! function_exists( 'varia_cart_count_fragment' ) ) { /** * Cart Count Fragments * Ensure cart item count update when products are added to the cart via AJAX * * @param array $fragments Fragments to refresh via AJAX. * @return array Fragments to refresh via AJAX */ function varia_cart_count_fragment( $fragments ) { ob_start(); echo '' . wp_kses_data( sprintf( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count(), 'varia' ), WC()->cart->get_cart_contents_count() ) ) . ''; $fragments['.woocommerce-cart-count'] = ob_get_clean(); return $fragments; } } /** * Setup cart widget for mini-cart dropdown */ if ( ! function_exists( 'varia_cart_widget' ) ) { /** * Cart Items List * Ensure cart contents update when products are added to the cart via AJAX * * @param array $fragments Fragments to refresh via AJAX. * @return array Fragments to refresh via AJAX */ function varia_cart_widget() { ob_start(); the_widget( 'WC_Widget_Cart', 'title=' ); $widget_output = ob_get_contents(); ob_end_clean(); return $widget_output; } } /** * Add cart fragment filters * * @see varia_cart_subtotal_fragment() and varia_cart_count_fragment() */ if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, '2.3', '>=' ) ) { add_filter( 'woocommerce_add_to_cart_fragments', 'varia_cart_subtotal_fragment', 10, 1 ); add_filter( 'woocommerce_add_to_cart_fragments', 'varia_cart_count_fragment', 10, 1 ); } else { add_filter( 'add_to_cart_fragments', 'varia_cart_subtotal_fragment' ); add_filter( 'add_to_cart_fragments', 'varia_cart_count_fragment' ); } /** * Add WooCommerce mini-cart link to primary menu */ function varia_add_cart_menu( $nav, $args ) { if ( $args->theme_location == 'menu-1' ) { update_option( 'varia_cart_icon', true ); if ( empty( $nav ) ) { update_option( 'varia_cart_icon', false ); } $has_cart_icon = get_option( 'varia_cart_icon' ); if ( $has_cart_icon && ! empty( $nav ) ) { return sprintf( '%1$s