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 );