You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce商品缩略图中排除特定分类商品的徽章显示?

解决WooCommerce中隐藏“deal”分类商品折扣徽章的问题

可以实现隐藏“deal”分类商品的折扣徽章,推荐通过修改PHP代码的方式(彻底不生成徽章HTML),也可以用CSS样式隐藏作为备选方案。

方法一:修改PHP函数(推荐)

在你现有的PHP函数中,添加判断商品是否属于“deal”分类的逻辑,若属于则跳过折扣徽章的生成。修改后的完整代码如下:

function action_woocommerce_before_shop_loop_item_title() {
    remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
    global $product;
    
    if ( is_a( $product, 'WC_Product' ) ) {
        $size = 'woocommerce_thumbnail';
        $image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
        $get_image = $product->get_image( $image_size );
        
        $is_on_sale = $product->is_on_sale();
        // 判断商品是否属于deal分类
        $is_deal_cat = has_term( 'deal', 'product_cat', $product->get_id() );
        
        if ( $is_on_sale && !$is_deal_cat ) { // 仅当商品促销且不属于deal分类时才生成徽章
            $rrp_price        = (int) $product->get_regular_price();
            $sale_price       = (int) $product->get_price();
            if ( $rrp_price > $sale_price ) {
                $discount_amount  = $rrp_price - $sale_price;
                $discount_percent =  round( ( $discount_amount / $rrp_price ) * 100, 0 ) . '% Off';
                $get_image        = '<span class="wpd-sale-thumbnail"> <span class="wpd-sale-badge">' . $discount_percent . '</span>' . $get_image . '</span>';
            }
        }
    }
    echo $product ? $get_image : '';
}
add_action( 'woocommerce_before_shop_loop_item_title', 'action_woocommerce_before_shop_loop_item_title', 9 );

关键修改点:

  • 添加$is_deal_cat = has_term( 'deal', 'product_cat', $product->get_id() );:检查当前商品是否属于slug为deal的商品分类
  • 将原有的if ( $is_on_sale )改为if ( $is_on_sale && !$is_deal_cat ):只有当商品处于促销状态且不属于deal分类时,才生成折扣徽章

方法二:CSS样式隐藏(备选)

如果你不想修改PHP代码,可以通过CSS选择器定位到deal分类下的商品,隐藏其折扣徽章。在你的现有CSS中添加以下代码:

/* 隐藏deal分类商品的折扣徽章 */
.product-category-deal .wpd-sale-badge {
    display: none !important;
}

原理:WooCommerce会给商品列表项添加包含分类slug的类名(格式为product-category-{分类slug}),通过这个类名可以精准定位到deal分类的商品,进而隐藏其徽章。

内容的提问来源于stack exchange,提问作者marwah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:15:34