Woocommerce中的定制变量产品格式价格,不带小数

时间:2018-07-05 00:23:14

标签: php wordpress woocommerce product price

我当前在激活的子主题中的functions.php中使用此附加代码,以在产品使用变体时删除价格范围(因此,它只会显示价格“发件人:X $”而不是“发件人: X $-Y $“):

add_filter( 'woocommerce_variable_sale_price_html',
'lw_variable_product_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html',
'lw_variable_product_price', 10, 2 );

function lw_variable_product_price( $v_price, $v_product ) {

// Regular Price
$v_prices = array( $v_product->get_variation_price( 'min', true ),
                            $v_product->get_variation_price( 'max', true ) );
$v_price = $v_prices[0]!==$v_prices[1] ? sprintf(__('From: %1$s', 'woocommerce'),
                       wc_price( $v_prices[0] ) ) : wc_price( $v_prices[0] );

// Sale Price
$v_prices = array( $v_product->get_variation_regular_price( 'min', true ),
                          $v_product->get_variation_regular_price( 'max', true ) );
sort( $v_prices );
$v_saleprice = $v_prices[0]!==$v_prices[1] ? sprintf(__('From: %1$s','woocommerce')
                      , wc_price( $v_prices[0] ) ) : wc_price( $v_prices[0] );

if ( $v_price !== $v_saleprice ) {
$v_price = '<del>'.$v_saleprice.$v_product->get_price_suffix() . '</del> <ins>' .
                       $v_price . $v_product->get_price_suffix() . '</ins>';
}
return $v_price;
}

标题中已经提到了这里唯一的问题。我需要在产品列表(默认商店页面)中显示价格,而不显示小数点,这与当前显示的内容不同: enter image description here

我确定没有这些附加代码,我就没有这些零。

相信最后没有两个零,看起来会好得多。

1 个答案:

答案 0 :(得分:2)

要显示不含小数的价格,您需要在Woocommerce wc_price()格式设置功能中使用'decimals'参数

因此,例如,以价格499.00,您将在参数wc_price()上添加array('decimals' => 0)

echo wc_price( 499.00, array('decimals' => 0) );

它将输出格式化的html价格,不带小数。

如您所见,它使用wc_price()函数从任何格式化的价格中删除了小数,因此在您的代码中例如:

$v_price = $v_prices[0]!==$v_prices[1] ? sprintf(__('From: %1$s', 'woocommerce'),
wc_price( $v_prices[0], array('decimals' => 0) ) ) : wc_price( $v_prices[0], array('decimals' => 0) );
  

对于可变的产品自定义价格,如您所愿,请参见以下答案:

     

WooCommerce variable products: keep only "min" price with a custom label

     

您只需要将array('decimals' => 0)添加到wc_price()函数中