我发现以下代码(来自here)使我能够在WooCommerce的可变价格产品上展示:“ 发件人:10英镑”(10英镑至50英镑)产品)。我想有效地扭转这种状况,并显示“ 最高50英镑”。
我试图调整下面的代码,但无法弄清楚:
function custom_variable_price_range( $price_html, $product ) {
$prefix = sprintf('%s: ', __('From', 'woocommerce') );
$min_regular_price = $product->get_variation_regular_price( 'min', true );
$min_sale_price = $product->get_variation_sale_price( 'min', true );
$max_price = $product->get_variation_price( 'max', true );
$min_price = $product->get_variation_price( 'min', true );
$price_html = ( $min_sale_price == $min_regular_price ) ? wc_price( $min_regular_price ) :
'<del>' . wc_price( $min_regular_price ) . '</del>' . '<ins>' . wc_price( $min_sale_price ) . '</ins>';
return ( $min_price == $max_price ) ? $price_html : sprintf( '%s%s', $prefix, $price_html );
}
add_filter( 'woocommerce_variable_sale_price_html', 'custom_variable_price_range', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'custom_variable_price_range', 10, 2 );
这就是我想要的样子:
感谢您的帮助。
答案 0 :(得分:0)
以下代码将给出带有“ Up to:”后缀的“ max”变量格式价格,并处理销售价格范围:
add_filter( 'woocommerce_variable_sale_price_html', 'custom_variable_price_range', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'custom_variable_price_range', 10, 2 );
function custom_variable_price_range( $price_html, $product ) {
$prefix = __('Up to', 'woocommerce');
$max_regular_price = $product->get_variation_regular_price( 'max', true );
$max_sale_price = $product->get_variation_sale_price( 'max', true );
$max_active_price = $product->get_variation_price( 'max', true );
$min_active_price = $product->get_variation_price( 'min', true );
$price_html = ( $max_sale_price == $max_regular_price ) ? wc_price( $max_active_price ) :
'<del>' . wc_price( $max_regular_price ) . '</del> <ins>' . wc_price( $max_sale_price ) . '</ins>';
return $min_active_price == $max_active_price ? $price_html : sprintf('%s %s', $prefix, $price_html);
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
如果您不想处理促销价格范围,可以使用:
add_filter( 'woocommerce_variable_sale_price_html', 'custom_variable_price_range', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'custom_variable_price_range', 10, 2 );
function custom_variable_price_range( $price_html, $product ) {
$prefix = __('Up to', 'woocommerce');
$max_active_price = $product->get_variation_price( 'max', true );
$min_active_price = $product->get_variation_price( 'min', true );
$price_html = wc_price( $max_active_price );
return $min_active_price == $max_active_price ? $price_html : sprintf('%s %s', $prefix, $price_html );
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
答案 1 :(得分:0)
添加此
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 ) {
// Product Price
$prod_prices = array( $v_product->get_variation_price( 'min', true ),
$v_product->get_variation_price( 'max', true ) );
$prod_price = $prod_prices[0]!==$prod_prices[1] ? sprintf(__('Up to: %1$s',
'woocommerce'),
wc_price( $prod_prices[0] ) ) : wc_price( $prod_prices[0] );
// Regular Price
$regular_prices = array( $v_product->get_variation_regular_price( 'min', true ),
$v_product->get_variation_regular_price( 'max', true ) );
sort( $regular_prices );
$regular_price = $regular_prices[0]!==$regular_prices[1] ? sprintf(__('Up to:
%1$s','woocommerce')
, wc_price( $regular_prices[0] ) ) : wc_price( $regular_prices[0] );
if ( $prod_price !== $regular_price ) {
$prod_price = '<del>'.$regular_price.$v_product->get_price_suffix() . '</del>
<ins>' .
$prod_price . $v_product->get_price_suffix() . '</ins>';
}
return $prod_price;
}