Can you suggest how this can be fixed? I’m in development mode, so the site is not live yet. Using WordPress 5.4 with Flatsome Child Theme and Elementor. Thanks.
]]>It looks like a loop of some sorts is missing since it is working with the 2017-theme.
The plugin used is called YITH woocommerce badge management, their supportforum thinks maby some kind of web-hook needed for woocommerce is missing. But as far as I can see this theme is supposed to be woocommerce compatible.
https://drakfrukt.se/produkt/gron-currypasta/ got the badges “new” and “2 for 25” on the single product, but if you go one step back in the breadcrumbs to categories, (https://drakfrukt.se/produktkategori/smaksattning/pastor/) they wont be displayed any more. Although they are supposed to.
Grateful for help or a pointer, been googling for hours.
]]>I need help to show the badge in my product categories page / shop page. Now, in my website: www.basicteestore.com only show the badges in the single product page.
I have used virtue theme in my website.
and this is the code of my Cpanel /home/basictee/public_html/wp-content/themes/virtue/lib/custom-woocommerce.php:
<?php
/*———————————————————————————–*/
/* This theme supports WooCommerce */
/*———————————————————————————–*/
add_action( ‘after_setup_theme’, ‘woocommerce_support’ );
function woocommerce_support() {
add_theme_support( ‘woocommerce’ );
}
/*———————————————————————————–*/
/* WooCommerce Functions */
/*———————————————————————————–*/
if (class_exists(‘woocommerce’)) {
add_filter( ‘woocommerce_enqueue_styles’, ‘__return_false’ );
// Disable WooCommerce Lightbox
if (get_option( ‘woocommerce_enable_lightbox’ ) == true ) {
update_option( ‘woocommerce_enable_lightbox’, false );
}
// Makes the product finder plugin work.
remove_action( ‘template_redirect’ , array( ‘WooCommerce_Product_finder’ , ‘load_template’ ) );
if(class_exists(‘WC_PDF_Product_Vouchers’)) {
add_filter(‘template_include’, ‘kt_wc_voucher_override’, 20);
function kt_wc_voucher_override($template) {
$cpt = get_post_type();
if ($cpt == ‘wc_voucher’) {
remove_filter(‘template_include’, array(‘Kadence_Wrapping’, ‘wrap’), 101);
}
return $template;
}
}
}
remove_action( ‘woocommerce_before_shop_loop’, ‘woocommerce_result_count’, 20);
remove_action( ‘woocommerce_before_shop_loop’, ‘woocommerce_catalog_ordering’, 30);
remove_action( ‘woocommerce_before_main_content’, ‘woocommerce_output_content_wrapper’, 10);
remove_action( ‘woocommerce_before_main_content’, ‘woocommerce_breadcrumb’, 20);
remove_action( ‘woocommerce_after_main_content’, ‘woocommerce_output_content_wrapper_end’, 10);
add_action(‘kt_afterheader’, ‘kt_wc_print_notices’);
function kt_wc_print_notices() {
if (class_exists(‘woocommerce’)) {
if(!is_shop() and !is_woocommerce() and !is_cart() and !is_checkout() and !is_account_page() ) {
echo ‘<div class=”container”>’;
echo do_shortcode( ‘[woocommerce_messages]’ );
echo ‘</div>’;
}
}
}
// Set the number of columns to 3
function kad_woocommerce_cross_sells_columns( $columns ) {
return 3;
}
add_filter( ‘woocommerce_cross_sells_columns’, ‘kad_woocommerce_cross_sells_columns’, 10, 1 );
// Limit the number of cross sells displayed to a maximum of 3
function kad_woocommerce_cross_sells_total( $limit ) {
return 3;
}
add_filter( ‘woocommerce_cross_sells_total’, ‘kad_woocommerce_cross_sells_total’, 10, 1 );
// Redefine woocommerce_output_related_products()
function kadence_woo_related_products_limit() {
global $product, $woocommerce;
$related = $product->get_related();
$args = array(
‘post_type’ => ‘product’,
‘no_found_rows’ => 1,
‘posts_per_page’ => 4,
‘ignore_sticky_posts’ => 1,
//’orderby’ => $orderby,
‘post__in’ => $related,
‘post__not_in’ => array($product->id)
);
return $args;
}
add_filter( ‘woocommerce_related_products_args’, ‘kadence_woo_related_products_limit’ );
// Number of products per page
add_filter(‘loop_shop_per_page’, ‘kadence_wooframework_products_per_page’);
if (!function_exists(‘kadence_wooframework_products_per_page’)) {
function kadence_wooframework_products_per_page() {
global $virtue;
if ( isset( $virtue[‘products_per_page’] ) ) {
return $virtue[‘products_per_page’];
}
}
}
// Display product tabs?
add_action(‘wp_head’,’kadence_wooframework_tab_check’);
if ( ! function_exists( ‘kadence_wooframework_tab_check’ ) ) {
function kadence_wooframework_tab_check() {
global $virtue;
if ( isset( $virtue[ ‘product_tabs’ ] ) && $virtue[ ‘product_tabs’ ] == “0” ) {
remove_action( ‘woocommerce_after_single_product_summary’, ‘woocommerce_output_product_data_tabs’, 10);
}
}
}
// Display related products?
add_action(‘wp_head’,’kadence_wooframework_related_products’);
if ( ! function_exists( ‘kadence_wooframework_related_products’ ) ) {
function kadence_wooframework_related_products() {
global $virtue;
if ( isset( $virtue[ ‘related_products’ ] ) && $virtue[ ‘related_products’ ] == “0” ) {
remove_action( ‘woocommerce_after_single_product_summary’, ‘woocommerce_output_related_products’, 20);
}
}
}
add_filter(‘add_to_cart_fragments’, ‘kadence_woocommerce_header_add_to_cart_fragment’);
function kadence_woocommerce_header_add_to_cart_fragment( $fragments ) {
global $woocommerce;
ob_start(); ?>
cart->get_cart_url()); ?>” title=”<?php esc_attr_e(‘View your shopping cart’, ‘virtue’); ?>”>
<i class=”icon-shopping-cart” style=”padding-right:5px;”></i>
<?php _e(‘Your Cart’, ‘virtue’);?>
<span class=”kad-cart-dash”>-</span>
<?php if ( WC()->cart->tax_display_cart == ‘incl’ ) {
echo WC()->cart->get_cart_subtotal();
} else {
echo WC()->cart->get_cart_total();
}
?>
<?php
$fragments[‘a.cart-contents’] = ob_get_clean();
return $fragments;
}
remove_action( ‘woocommerce_shop_loop_item_title’, ‘woocommerce_template_loop_product_title’, 10 );
add_action( ‘woocommerce_shop_loop_item_title’, ‘kt_woocommerce_template_loop_product_title’, 10);
function kt_woocommerce_template_loop_product_title() {
echo ‘<h5>’.get_the_title().'</h5>’;
}
remove_action( ‘woocommerce_single_variation’, ‘woocommerce_single_variation’, 10 );
remove_action( ‘woocommerce_single_variation’, ‘woocommerce_single_variation_add_to_cart_button’, 20 );
add_action( ‘woocommerce_single_variation’, ‘kt_woocommerce_single_variation’, 10 );
add_action( ‘woocommerce_single_variation’, ‘kt_woocommerce_single_variation_add_to_cart_button’, 20 );
if ( ! function_exists( ‘kt_woocommerce_single_variation_add_to_cart_button’ ) ) {
/**
* Output the add to cart button for variations.
*/
function kt_woocommerce_single_variation_add_to_cart_button() {
global $product;
?>
<div class=”variations_button”>
<?php woocommerce_quantity_input( array( ‘input_value’ => isset( $_POST[‘quantity’] ) ? wc_stock_amount( $_POST[‘quantity’] ) : 1 ) ); ?>
<button type=”submit” class=”kad_add_to_cart headerfont kad-btn kad-btn-primary single_add_to_cart_button”><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
<input type=”hidden” name=”add-to-cart” value=”<?php echo absint( $product->id ); ?>” />
<input type=”hidden” name=”product_id” value=”<?php echo absint( $product->id ); ?>” />
<input type=”hidden” name=”variation_id” class=”variation_id” value=”” />
</div>
<?php
}
}
if ( ! function_exists( ‘kt_woocommerce_single_variation’ ) ) {
/**
* Output placeholders for the single variation.
*/
function kt_woocommerce_single_variation() {
echo ‘<div class=”single_variation headerfont”></div>’;
}
}
// Shop Page Image
remove_action( ‘woocommerce_before_shop_loop_item_title’, ‘woocommerce_template_loop_product_thumbnail’, 10 );
add_action( ‘woocommerce_before_shop_loop_item_title’, ‘kt_woocommerce_template_loop_product_thumbnail’, 10 );
function kt_woocommerce_template_loop_product_thumbnail() {
global $virtue, $woocommerce_loop, $post;
// Store column count for displaying the grid
if ( empty( $woocommerce_loop[‘columns’] ) )
$woocommerce_loop[‘columns’] = apply_filters( ‘loop_shop_columns’, 4 );
if ($woocommerce_loop[‘columns’] == ‘3’){
$productimgwidth = 365;
$productimgheight = 365;
} else {
$productimgwidth = 268;
$productimgheight = 268;
}
if(isset($virtue[‘product_img_resize’]) && $virtue[‘product_img_resize’] == 0) {
$resizeimage = 0;
} else {
$resizeimage = 1;
}
if($resizeimage == 1) {
if ( has_post_thumbnail() ) {
$image_id = get_post_thumbnail_id( $post->ID );
$product_image_array = wp_get_attachment_image_src( $image_id, ‘full’ );
$product_image_url = $product_image_array[0];
// Make sure there is a copped image to output
$image_product = aq_resize($product_image_url, $productimgwidth, $productimgwidth, true);
if(empty($image_product)) {$image_product = $product_image_url;}
// Get srcset
$img_srcset_output = kt_get_srcset_output( $productimgwidth, $productimgheight, $product_image_url, $image_id);
// Get alt and fall back to title if no alt
$alt_text = get_post_meta($image_id, ‘_wp_attachment_image_alt’, true);
if(empty($alt_text)) {$alt_text = get_the_title();}
ob_start(); ?>
” height=”<?php echo esc_attr($productimgheight);?>”
src=”<?php echo esc_url($image_product);?>”
<?php echo $img_srcset_output;?>
class=”attachment-shop_catalog size-<?php echo esc_attr($productimgwidth.’x’.$productimgheight);?> wp-post-image”
alt=”<?php echo esc_attr($alt_text); ?>”>
<?php
echo apply_filters(‘post_thumbnail_html’, ob_get_clean(), $post->ID, $image_id, array($productimgwidth, $productimgheight), $attr = ”);
} elseif ( woocommerce_placeholder_img_src() ) {
echo woocommerce_placeholder_img( ‘shop_catalog’ );
}
} else {
echo ‘<div class=”kad-woo-image-size”>’;
echo woocommerce_template_loop_product_thumbnail();
echo ‘</div>’;
}
}
remove_action( ‘woocommerce_before_shop_loop_item’, ‘woocommerce_template_loop_product_link_open’, 10 );
remove_action( ‘woocommerce_after_shop_loop_item_title’, ‘woocommerce_template_loop_product_link_close’, 5 );
remove_action( ‘woocommerce_shop_loop_subcategory_title’, ‘woocommerce_template_loop_category_title’, 10 );
add_action( ‘woocommerce_shop_loop_subcategory_title’, ‘kt_woocommerce_template_loop_category_title’, 10 );
function kt_woocommerce_template_loop_category_title( $category ) {
?>
<h5>
<?php
echo $category->name;
if ( $category->count > 0 )
echo apply_filters( ‘woocommerce_subcategory_count_html’, ‘ <mark class=”count”>(‘ . $category->count . ‘)</mark>’, $category );
?>
</h5>
<?php
}
// define the woocommerce_loop_add_to_cart_link callback
function kt_add_class_woocommerce_loop_add_to_cart_link($array, $product) {
$array[‘class’] .= ‘ kad-btn headerfont kad_add_to_cart’;
return $array;
}
add_filter(‘woocommerce_loop_add_to_cart_args’, ‘kt_add_class_woocommerce_loop_add_to_cart_link’, 10, 2);
remove_action( ‘woocommerce_before_subcategory’, ‘woocommerce_template_loop_category_link_open’, 10 );
remove_action( ‘woocommerce_after_subcategory’, ‘woocommerce_template_loop_category_link_close’, 10 );
add_action( ‘woocommerce_before_subcategory’, ‘kt_woocommerce_template_loop_category_link_open’, 10 );
add_action( ‘woocommerce_after_subcategory’, ‘kt_woocommerce_template_loop_category_link_close’, 10 );
function kt_woocommerce_template_loop_category_link_open( $category ) {
echo ‘slug, ‘product_cat’ ) . ‘”>’;
}
function kt_woocommerce_template_loop_category_link_close() {
echo ‘‘;
}
/*
*
* WOO ARCHIVE CAT IMAGES
*
*/
function kad_woo_archive_cat_image_output() {
remove_action( ‘woocommerce_before_subcategory_title’, ‘woocommerce_subcategory_thumbnail’, 10 );
add_action( ‘woocommerce_before_subcategory_title’, ‘kad_woocommerce_subcategory_thumbnail’, 10 );
function kad_woocommerce_subcategory_thumbnail($category) {
global $woocommerce_loop, $virtue;
if ( empty( $woocommerce_loop[‘columns’] ) ) {
$woocommerce_loop[‘columns’] = apply_filters( ‘loop_shop_columns’, 4 );
}
$product_cat_column = $woocommerce_loop[‘columns’];
if ($product_cat_column == ‘3’){
$catimgwidth = 380;
} else {
$catimgwidth = 270;
}
if(isset($virtue[‘product_cat_img_ratio’])) {
$img_ratio = $virtue[‘product_cat_img_ratio’];
} else {
$img_ratio = ‘widelandscape’;
}
if($img_ratio == ‘portrait’) {
$tempcatimgheight = $catimgwidth * 1.35;
$catimgheight = floor($tempcatimgheight);
} else if($img_ratio == ‘landscape’) {
$tempcatimgheight = $catimgwidth / 1.35;
$catimgheight = floor($tempcatimgheight);
} else if($img_ratio == ‘square’) {
$catimgheight = $catimgwidth;
} else {
$tempcatimgheight = $catimgwidth / 2;
$catimgheight = floor($tempcatimgheight);
}
// OUTPUT
if($img_ratio == ‘off’) {
woocommerce_subcategory_thumbnail($category);
} else {
$thumbnail_id = get_woocommerce_term_meta( $category->term_id, ‘thumbnail_id’, true );
if ( $thumbnail_id ) {
$image_cat_src = wp_get_attachment_image_src( $thumbnail_id, ‘full’);
$image_cat_url = $image_cat_src[0];
$cat_image = aq_resize($image_cat_url, $catimgwidth, $catimgheight, true, false, false, $thumbnail_id);
if(empty($cat_image[0])) {$cat_image = array($image_cat_url,$image_cat_src[1],$image_cat_src[2]);}
$img_srcset_output = kt_get_srcset_output( $catimgwidth, $catimgheight, $image_cat_url, $thumbnail_id);
} else {
$cat_image = array(virtue_img_placeholder(),$catimgwidth,$catimgheight);
$img_srcset_output = ”;
}
if ( $cat_image[0] ) {
echo ‘<div class=”kt-cat-intrinsic” style=”padding-bottom:’. ($cat_image[2]/$cat_image[1]) * 100 .’%;”>’;
echo ‘name) . ‘” ‘.$img_srcset_output.’ />’;
echo ‘</div>’;
}
}
}
}
add_action( ‘init’, ‘kad_woo_archive_cat_image_output’);
https://www.ads-software.com/plugins/yith-woocommerce-badges-management/
]]>