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
相关产品推荐
相关产品推荐

