1, 'class' => implode( ' ', array_filter( array( 'button th-button', 'product_type_' . $product->get_type(), $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', $product->supports( 'ajax_add_to_cart' ) && $product->is_purchasable() && $product->is_in_stock() ? 'ajax_add_to_cart' : '', ) ) ), 'attributes' => array( 'data-product_id' => $product->get_id(), 'data-product_sku' => $product->get_sku(), 'aria-label' => $product->add_to_cart_description(), 'rel' => 'nofollow', ), ); $args = apply_filters( 'woocommerce_loop_add_to_cart_args', wp_parse_args( $args, $defaults ), $product ); if ( isset( $args['attributes']['aria-label'] ) ){ $args['attributes']['aria-label'] = wp_strip_all_tags( $args['attributes']['aria-label'] ); } wc_get_template( 'loop/add-to-cart.php', $args ); } } /**********************************/ //Shop Product Markup /**********************************/ if ( ! function_exists( 'amaz_store_product_meta_start' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_meta_start(){ echo '
'; } } if ( ! function_exists( 'amaz_store_product_meta_end' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_meta_end(){ echo '
'; } } /**********************************/ //Shop Product Image Markup /**********************************/ if ( ! function_exists( 'amaz_store_product_image_start' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_image_start(){ echo '
'; } } if ( ! function_exists( 'amaz_store_product_image_end' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_image_end(){ global $product; $pid = $product->get_id(); echo '
'; if (function_exists('amaz_store_whish_list')) { amaz_store_whish_list($pid); } if (function_exists('amaz_store_add_to_compare_fltr')) { amaz_store_add_to_compare_fltr($pid); } amaz_store_quickview(); echo '
'; } } /** * add to cart start. */ if ( ! function_exists( 'amaz_store_add_to_cart' ) ){ function amaz_store_add_to_cart(){ echo'
'; echo woocommerce_template_loop_add_to_cart(); echo '
'; } } if ( ! function_exists( 'amaz_store_product_content_start' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_content_start(){ echo '
'; } } if ( ! function_exists( 'amaz_store_product_content_end' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_content_end(){ amaz_store_show_stock_shop(); amaz_store_display_specific_shipping_class(); echo '
'; } } /** * Thunk-product-hover start. */ if ( ! function_exists( 'amaz_store_product_hover_start' ) ){ function amaz_store_product_hover_start(){ echo'
'; amaz_store_add_to_cart(); } } if ( ! function_exists( 'amaz_store_product_hover_end' ) ){ /** * Thumbnail wrap start. */ function amaz_store_product_hover_end(){ echo '
'; } } if ( ! function_exists( 'amaz_store_shop_content_start' ) ){ /** * Thumbnail wrap start. */ function amaz_store_shop_content_start(){ $viewshow = get_theme_mod('amaz_store_prd_view','grid-view'); if($viewshow == 'grid-view'){ echo '
'; }else{ echo '
'; } } } if ( ! function_exists( 'amaz_store_shop_content_end' ) ){ /** * Thumbnail wrap start. */ function amaz_store_shop_content_end(){ echo '
'; } } function amaz_store_quickview(){ do_action('quickview'); } /** * Shop customization. * * @return void */ add_action( 'woocommerce_before_shop_loop_item', 'amaz_store_product_meta_start', 10); add_action( 'woocommerce_after_shop_loop_item', 'amaz_store_product_meta_end', 12 ); add_action( 'woocommerce_before_shop_loop_item_title', 'amaz_store_product_content_start',20); add_action( 'woocommerce_after_shop_loop_item_title', 'amaz_store_product_content_end', 20 ); add_action( 'woocommerce_after_shop_loop_item_title', 'amaz_store_product_hover_start',50); add_action( 'woocommerce_after_shop_loop_item', 'amaz_store_product_hover_end',20); add_action( 'woocommerce_before_shop_loop_item_title','woocommerce_template_loop_product_link_open',5); add_action( 'woocommerce_before_shop_loop_item_title','woocommerce_template_loop_product_link_close',10); add_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_link_open',0); add_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_link_close',10); add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 0); add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price',10); add_action( 'woocommerce_before_shop_loop_item_title', 'amaz_store_product_image_start', 0); add_action( 'woocommerce_before_shop_loop_item_title', 'amaz_store_product_image_end',10 ); remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); add_action( 'woocommerce_before_shop_loop', 'amaz_store_shop_content_start',1); add_action( 'woocommerce_after_shop_loop', 'amaz_store_shop_content_end',1); remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open'); remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 ); // remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); /***************/ // single page /***************/ if ( ! function_exists( 'amaz_store_single_summary_start' ) ){ /** * Thumbnail wrap start. */ function amaz_store_single_summary_start(){ echo '
'; } } if( ! function_exists( 'amaz_store_single_summary_end' ) ){ /** * Thumbnail wrap start. */ function amaz_store_single_summary_end(){ echo '
'; } } add_action( 'woocommerce_before_single_product_summary', 'amaz_store_single_summary_start',0); add_action( 'woocommerce_after_single_product_summary', 'amaz_store_single_summary_end',0); remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs',40 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 ); add_filter( 'woocommerce_product_tabs', 'amaz_store_woocommerce_custom_product_tabs', 40 ); add_action('woocommerce_single_product_summary', 'amaz_store_display_specific_shipping_class', 15 ); function amaz_store_woocommerce_custom_product_tabs( $tabs ) { $tabs['delivery_information'] = array( 'title' => __( 'Meta Information', 'amaz-store' ), 'priority' => 10, 'callback' => 'woocommerce_product_meta_tab' ); return $tabs; } function woocommerce_product_meta_tab(){// this is where you indicate what appears in the description tab wc_get_template( 'single-product/meta.php' ); // The meta content first } /** * Add next/prev buttons @ WooCommerce Single Product Page */ add_action( 'woocommerce_single_product_summary', 'amaz_store_prev_next_product',0 ); // and if you also want them at the bottom... add_action( 'woocommerce_single_product_summary', 'amaz_store_prev_next_product',0 ); function amaz_store_prev_next_product(){ echo '
'; // 'product_cat' will make sure to return next/prev from current category $previous = next_post_link('%link', '←', TRUE, ' ', 'product_cat'); $next = previous_post_link('%link', '→', TRUE, ' ', 'product_cat'); echo $previous; echo $next; echo '
'; } /****************/ // add to compare /****************/ if (!function_exists('amaz_store_add_to_compare_fltr')) { function amaz_store_add_to_compare_fltr($pid = ''){ global $product; $product_id = $pid; if(class_exists('th_product_compare') || class_exists('Tpcp_product_compare')){ echo '
'; } } } /**********************/ /** wishlist **/ /**********************/ if (!function_exists('amaz_store_whish_list')) { function amaz_store_whish_list($pid = ''){ if( shortcode_exists( 'thwl_add_to_wishlist' )){ ?>
'.__('Account','amaz-store').''; } else { $return = ''.__('Register','amaz-store').''; } echo $return; } } // Plus Minus Quantity Buttons @ WooCommerce Single Product Page add_action( 'woocommerce_before_add_to_cart_quantity', 'amaz_store_display_quantity_minus',10,2 ); function amaz_store_display_quantity_minus(){ global $product; // Get the product ID $product_id = $product->get_id(); // Check if stock management is enabled $manage_stock = get_post_meta( $product_id, '_manage_stock', true ); // Check if the product has stock management and the quantity is greater than 1 if ( ( $manage_stock === 'no' ) || ( $manage_stock === 'yes' && $product->get_stock_quantity() > 1 ) ) { echo '
'; } } add_action( 'woocommerce_after_add_to_cart_quantity', 'amaz_store_display_quantity_plus',10,2 ); function amaz_store_display_quantity_plus(){ global $product; // Get the product ID $product_id = $product->get_id(); // Check if stock management is enabled $manage_stock = get_post_meta( $product_id, '_manage_stock', true ); // Check if the product has stock management and the quantity is greater than 1 if ( ( $manage_stock === 'no' ) || ( $manage_stock === 'yes' && $product->get_stock_quantity() > 1 ) ) { echo '
'; } } //Woocommerce: How to remove page-title at the home/shop page but not category pages add_filter( 'woocommerce_show_page_title', 'amaz_store_not_a_shop_page' ); function amaz_store_not_a_shop_page() { return boolval(!is_shop()); } //***********************/ // product category list //************************/ function amaz_store_product_list_categories( $args = '' ){ $term = get_theme_mod('amaz_store_exclde_category'); if(!empty($term[0])){ $exclude_id = $term; }else{ $exclude_id = ''; } $defaults = array( 'child_of' => 0, 'current_category' => 0, 'depth' => 5, 'echo' => 0, 'exclude' => $exclude_id, 'exclude_tree' => '', 'feed' => '', 'feed_image' => '', 'feed_type' => '', 'hide_empty' => 1, 'hide_title_if_empty' => false, 'hierarchical' => true, 'order' => 'ASC', 'orderby' => 'menu_order', 'separator' => '
', 'show_count' => 0, 'show_option_all' => '', 'show_option_none' => __( 'No categories','amaz-store' ), 'style' => 'list', 'taxonomy' => 'product_cat', 'title_li' => '', 'use_desc_for_title' => 0, ); $html = wp_list_categories($defaults); echo ''; } function amaz_store_product_list_categories_mobile( $args = '' ){ $term = get_theme_mod('amaz_store_exclde_category'); if(!empty($term[0])){ $exclude_id = $term; }else{ $exclude_id = ''; } $defaults = array( 'child_of' => 0, 'current_category' => 0, 'depth' => 5, 'echo' => 0, 'exclude' => $exclude_id, 'exclude_tree' => '', 'feed' => '', 'feed_image' => '', 'feed_type' => '', 'hide_empty' => 1, 'hide_title_if_empty' => false, 'hierarchical' => true, 'order' => 'ASC', 'orderby' => 'menu_order', 'separator' => '
', 'show_count' => 0, 'show_option_all' => '', 'show_option_none' => __( 'No categories','amaz-store' ), 'style' => 'list', 'taxonomy' => 'product_cat', 'title_li' => '', 'use_desc_for_title' => 0, ); $html = wp_list_categories($defaults); echo ''; } add_filter( 'woocommerce_sale_flash', 'amaz_store_add_percentage_to_sale_badge', 20, 3 ); function amaz_store_add_percentage_to_sale_badge( $html, $post, $product ) { if( $product->is_type('variable')){ $percentages = array(); // Get all variation prices $prices = $product->get_variation_prices(); // Loop through variation prices foreach( $prices['price'] as $key => $price ){ // Only on sale variations if( $prices['regular_price'][$key] !== $price ){ // Calculate and set in the array the percentage for each variation on sale $percentages[] = round( 100 - ( floatval($prices['sale_price'][$key]) / floatval($prices['regular_price'][$key]) * 100 ) ); } } // We keep the highest value $percentage = max($percentages) . '%'; } elseif( $product->is_type('grouped') ){ $percentages = array(); // Get all variation prices $children_ids = $product->get_children(); // Loop through variation prices foreach( $children_ids as $child_id ){ $child_product = wc_get_product($child_id); $regular_price = (float) $child_product->get_regular_price(); $sale_price = (float) $child_product->get_sale_price(); if ( $sale_price != 0 || ! empty($sale_price) ) { // Calculate and set in the array the percentage for each child on sale $percentages[] = round(100 - ($sale_price / $regular_price * 100)); } } // We keep the highest value $percentage = max($percentages) . '%'; } else { $regular_price = (float) $product->get_regular_price(); $sale_price = (float) $product->get_sale_price(); if ( $sale_price != 0 || ! empty($sale_price) ) { $percentage = round(100 - ($sale_price / $regular_price * 100)) . '%'; } else { return $html; } } return '' . esc_html__( 'SALE', 'amaz-store' ) . ' ' . $percentage . ''; } //show stock quantity for products function amaz_store_show_stock_shop() { global $product; echo wc_get_stock_html( $product ); } //SHOW shipping class function amaz_store_display_specific_shipping_class(){ global $product; $shipping_class_id = $product->get_shipping_class_id(); $shipping_class_term = get_term($shipping_class_id, 'product_shipping_class'); if( ! is_wp_error($shipping_class_term) && is_a($shipping_class_term, 'WP_Term') ) { $shipping_class_name = $shipping_class_term->name; echo '

'.esc_html($shipping_class_name).'

'; } }