php中显示nan%,在WC 3.0+的单一产品页面中显示接近销售价格的折扣百分比

小编典典

更新 -2019 (避免四舍五入的价格问题) -2017 (避免NAN%百分比值)

woocommerce_sale_price_html 在WooCommerce

3.0+中,该钩子已替换为另一个钩子,该钩子现在具有3个参数(但不再有该 $product 参数)。

add_filter( 'woocommerce_format_sale_price', 'woocommerce_custom_sales_price', 10, 3 );

function woocommerce_custom_sales_price( $price, $regular_price, $sale_price ) {

// Getting the clean numeric prices (without html and currency)

$_reg_price = floatval( strip_tags($regular_price) );

$_sale_price = floatval( strip_tags($sale_price) );

// Percentage calculation and text

$percentage = round( ( $_reg_price - $_sale_price ) / $_reg_price * 100 ).'%';

$percentage_txt = ' ' . __(' Save ', 'woocommerce' ) . $percentage;

$formatted_regular_price = is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price;

$formatted_sale_price = is_numeric( $sale_price ) ? wc_price( $sale_price ) : $sale_price;

echo '' . $formatted_regular_price . ' ' . $formatted_sale_price . $percentage_txt . '';

}

这段代码会出现在您活动的子主题(或主题)的function.php文件中,也可能会出现在任何插件文件中。

该代码已经过测试并且可以工作。对于WooCommerce 3.0+版本 (感谢@Mikebcn和@AsifRao)

$percentage = number_format_i18n( ( $_reg_price - $_sale_price ) / $_reg_price * 100, 0 ).'%';

$percentage = number_format( ( $_reg_price - $_sale_price ) / $_reg_price * 100, 0 ).'%';

原始答案代码: 这是功能相似的代码:

// Only for WooCommerce version 3.0+

add_filter( 'woocommerce_format_sale_price', 'woocommerce_custom_sales_price', 10, 3 );

function woocommerce_custom_sales_price( $price, $regular_price, $sale_price ) {

$percentage = round( ( $regular_price - $sale_price ) / $regular_price * 100 ).'%';

$percentage_txt = ' ' . __(' Save ', 'woocommerce' ) . $percentage;

$price = '' . ( is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price ) . ' ' . ( is_numeric( $sale_price ) ? wc_price( $sale_price ) . $percentage_txt : $sale_price . $percentage_txt ) . '';

return $price;

}

这段代码会出现在您活动的子主题(或主题)的function.php文件中,也可能会出现在任何插件文件中。

该代码已经过测试并且可以工作。对于WooCommerce 3.0+版本。

2020-05-29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值