2

我有一个网站,所有产品都有 2 个变体属性。

  1. 普通物品
  2. 交换项目

正常项目变化有一个“正常价格”和“销售价格”是强制性的。交换项目变化只有 1 个正常价格。我想在看到所有产品的商店页面上显示所有 3 个价格。我在woocommerce/templates/loops/price.php

<?php if ( $price_html = $product->get_price_html() ) : ?>
    <span class="price"><?php echo $price_html; ?></span>
<?php endif; ?>

相同的代码为不同的主题获取不同的结果,我不明白是什么原因造成的。对于某些主题,它显示价格范围。对于我的主题,这仅显示 2 个变体中的最低价格。我怎样才能显示这样的东西:

  1. 正常价格:1000(删除线)
  2. 售价 : 800
  3. 兑换价:600

第 1 和第 2 是产品变体 1 的常规和销售价格,而第 3 是变体 2 的正常价格。

以下只是我想要的例子。罢工是正常价格,“带旧电池”是交换价格,“不带旧电池”是正常商品变化的正常价格。 在此处输入图像描述


编辑:所以我检查了具有此代码的 function.php

add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
 add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
 function wc_wc20_variation_price_format( $price, $product ) {
 // Main Price
 $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
 $price = $prices[0] !== $prices[1] ? sprintf( __( 'Price: %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( __( 'Previous Price: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
 if ( $price !== $saleprice ) {
   $price = '<ins>' . $price . '</ins> <del>' . $saleprice . '</del>';
 }
   return $price;
 }

获取我只交换价格值,我想得到所有。

4

0 回答 0