将可变价格范围更改为选定的变化价格

时间:2020-05-14 09:18:47

标签: woocommerce price variations

我一直在寻找安静的地方。我想使用选择的变化价格更改可变价格范围(并在选择变化后将价格隐藏在通常显示的底部)。

要更改差异价格,请使用以下代码段:

add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
function move_variations_single_price(){
  global $product, $post;
  if ( $product->is_type( 'variable' ) ) {
    add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
  }
}

function replace_variation_single_price() {
  ?>
    <style>
      .woocommerce-variation-price {
        display: none;
      }
    </style>
    <script>
      jQuery(document).ready(function($) {
        var priceselector = '.product p.price';
        var originalprice = $(priceselector).html();

        $( document ).on('show_variation', function() {
          $(priceselector).html($('.single_variation .woocommerce-variation-price').html());
        });
        $( document ).on('hide_variation', function() {
          $(priceselector).html(originalprice);
        });
      });
    </script>
  <?php
}

对于具有不同价格的可变产品来说效果很好,但是,如果从所有变体成本相同的可变产品中选择变体,则确实会隐藏价格。

要使用“ From(ab)X€”替换价格范围,请使用以下代码段:

function wc_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( __( 'ab %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( __( 'ab %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    if ( $price !== $saleprice ) {
        $price = '' . $saleprice . ' ' . $price . '';
    }

    return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_custom_variable_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_custom_variable_price', 10, 2 );

所以基本上,我的问题是我做错了什么,或者是否有任何方法可以显示变化成本相同的可变产品的价格...

PS:我已经在这里找到了这个问题(在这里我也找到了第一个片段),但是不幸的是,由于我是此页面的新手,所以我无法发表评论。

谢谢!

0 个答案:

没有答案