我有一个网站,所有产品都有 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 个变体中的最低价格。我怎样才能显示这样的东西:
- 正常价格:1000(删除线)
- 售价 : 800
- 兑换价: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;
}
获取我只交换价格值,我想得到所有。