WooCommerce - 显示价格固定的产品变体的常规价格和销售价格
WooCommerce - Show Regular and Sale Price for The Product Variation which has Flat Price
场景是Simple product,Variable product是woocommerce的两种不同的产品类型。
- 简单的产品将显示正常价格和促销价。
- 变化会给你一个价格范围。
我想要实现的是,有些产品有 50 多种变体,它们具有不同的销售价格和正常价格。该产品的价格范围是票价。
但也有一些产品的变体具有相同的正常价格和促销价格。价格没有差异。我希望价格显示为
我同意问题出现了,为什么我不应该选择简单的产品?因为在简单的产品中,我不允许添加下拉菜单中可用的颜色。有什么建议吗?
我找到了解决 codeNinja 片段问题的确切钩子!这是它的修复方式:
function wc_ninja_custom_variable_price( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'Starting From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = ' <ins class="highlight"> '. $price.' </ins> <del class="strike"> '.$saleprice .' </del> ';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_ninja_custom_variable_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_ninja_custom_variable_price', 10, 2 );
场景是Simple product,Variable product是woocommerce的两种不同的产品类型。
- 简单的产品将显示正常价格和促销价。
- 变化会给你一个价格范围。
我想要实现的是,有些产品有 50 多种变体,它们具有不同的销售价格和正常价格。该产品的价格范围是票价。
但也有一些产品的变体具有相同的正常价格和促销价格。价格没有差异。我希望价格显示为
我同意问题出现了,为什么我不应该选择简单的产品?因为在简单的产品中,我不允许添加下拉菜单中可用的颜色。有什么建议吗?
我找到了解决 codeNinja 片段问题的确切钩子!这是它的修复方式:
function wc_ninja_custom_variable_price( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'Starting From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = ' <ins class="highlight"> '. $price.' </ins> <del class="strike"> '.$saleprice .' </del> ';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_ninja_custom_variable_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_ninja_custom_variable_price', 10, 2 );