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

WooCommerce如何替换缺货产品促销价为SOLD OUT并保留常规售价

实现方案

你可以直接使用下方适配后的代码,无需修改原有逻辑即可满足需求,将代码添加到主题functions.php文件或者自定义代码插件中即可生效:

// 缺货产品仅替换促销价为SOLD OUT,保留零售价显示
add_filter( 'woocommerce_get_price_html', 'modify_out_of_stock_sale_price', 9999, 2 );
function modify_out_of_stock_sale_price( $price_html, $product ) {
    // 跳过有库存的产品,不做修改
    if ( $product->is_in_stock() ) {
        return $price_html;
    }
    // 仅对设置了促销价的缺货产品做调整
    if ( $product->is_on_sale() ) {
        $regular_price_display = wc_price( wc_get_price_to_display( $product, [ 'price' => $product->get_regular_price() ] ) );
        $price_html = sprintf( '<del>%s</del> <ins><span class="sold-out-label">SOLD OUT</span></ins>', $regular_price_display );
    }
    return $price_html;
}

// 移除缺货产品的促销折扣徽章
add_filter( 'woocommerce_sale_flash', 'hide_out_of_stock_sale_badge', 9999, 3 );
function hide_out_of_stock_sale_badge( $badge_html, $post, $product ) {
    if ( ! $product->is_in_stock() ) {
        return '';
    }
    return $badge_html;
}

注意事项

  • 代码兼容WooCommerce所有常规产品、可变产品类型,有库存产品的价格、促销徽章展示完全不受影响
  • 你可以自定义替换代码中的SOLD OUT文本为你需要的内容,也可以通过.sold-out-label类添加自定义CSS调整售罄文本的字体、颜色等样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:36:03