如何在WooCommerce中显示精确折扣百分比?(适配YITH插件)
解决YITH WooCommerce Badge Management折扣百分比显示精度问题
方法1:添加自定义代码修改计算逻辑
插件默认会对折扣百分比取整,你可以通过WooCommerce的钩子函数覆盖原有计算逻辑,实现精确到两位小数的显示效果。
将以下代码添加到主题的functions.php文件末尾,或使用Code Snippets插件添加(推荐用插件,避免主题更新丢失代码):
add_filter( 'yith_wcbm_get_discount_percentage', 'custom_yith_wcbm_precise_discount_percentage', 10, 3 ); function custom_yith_wcbm_precise_discount_percentage( $percentage, $product, $regular_price ) { $sale_price = $product->get_sale_price(); // 跳过无效价格的情况 if ( empty( $sale_price ) || empty( $regular_price ) || $regular_price <= 0 ) { return $percentage; } // 计算精确折扣并保留两位小数 $discount_ratio = ( $regular_price - $sale_price ) / $regular_price; $precise_percent = $discount_ratio * 100; return number_format( $precise_percent, 2 ); }
添加后刷新前端页面,即可看到类似49.75%的精确折扣显示。
方法2:检查插件内置设置(部分版本可用)
进入WordPress后台的YITH > Badge Management,查看是否有「折扣百分比精度」相关设置项:
- 若存在该选项,直接调整为保留2位小数即可
- 注意:并非所有版本的插件都提供此设置,若找不到则使用方法1
注意事项
- 修改代码前请备份网站数据,防止意外错误
- 优先使用子主题的
functions.php文件添加代码,避免主题更新时被覆盖 - 测试不同价格组合的产品,确保折扣计算准确(比如你提供的原价$8.50、促销价$4.27的案例,计算后应为49.75%)
内容的提问来源于stack exchange,提问作者Abdul Wahab
相关产品推荐
相关产品推荐

