St *_*vel 4 php variation woocommerce
如何在单个产品页面上显示当前活动变化的woocommerce可变价格?我使用代码:
<?php
global $product;
if ($product->is_type( 'simple' )) { ?>
<p class="price"><?php echo $product->get_price_html(); ?></p>
<?php } ?>
<?php
if($product->product_type=='variable') {
$available_variations = $product->get_available_variations();
$variation_id=$available_variations[0]['variation_id']; // Getting the variable id of just the 1st product. You can loop $available_variations to get info about each variation.
$variable_product1= new WC_Product_Variation( $variation_id );
$regular_price = $variable_product1 ->regular_price;
$sales_price = $variable_product1 ->sale_price;
echo $regular_price+$sales_price;
}
?>
Run Code Online (Sandbox Code Playgroud)
但是它仅显示最低可变价格,而不显示当前选择的变体价格。有什么想法如何显示当前价格以进行有效变动吗?
小智 6
所以,你可以修改 \your-theme\woocommerce\single-product\sale-flash.php 文件
或者,您也可以使用过滤器。顺便说一下,有更简单的解决方案:
if ($product->is_type( 'simple' )) {
$sale_price = $product->get_sale_price();
$regular_price = $product->get_regular_price();
}
elseif($product->is_type('variable')){
$sale_price = $product->get_variation_sale_price( 'min', true );
$regular_price = $product->get_variation_regular_price( 'max', true );
}
$discount = round (($sale_price / $regular_price -1 ) * 100);
}
Run Code Online (Sandbox Code Playgroud)
或者你可以复制这个要点https://gist.github.com/sholex/4064fc2b656c0857a78228cf5324b370
小智 5
<?php
global $product;
if ($product->is_type( 'simple' )) { ?>
<p class="price"><?php echo $product->get_price_html(); ?></p>
<?php } ?>
<?php
if($product->product_type=='variable') {
$available_variations = $product->get_available_variations();
$count = count($available_variations)-1;
$variation_id=$available_variations[$count]['variation_id']; // Getting the variable id of just the 1st product. You can loop $available_variations to get info about each variation.
$variable_product1= new WC_Product_Variation( $variation_id );
$regular_price = $variable_product1 ->regular_price;
$sales_price = $variable_product1 ->sale_price;
echo $regular_price+$sales_price;
}
?>
Run Code Online (Sandbox Code Playgroud)
尝试这个。这可能对您有帮助。