显示woocommerce变量产品价格

问题描述:

如何在单个产品页面上显示当前活动变体的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; 
        } 
       ?> 

但只显示最低的价格变化,而不是当前所选择的变化的价格。 任何想法如何显示活动变化的当前价格?

<?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; 
        } 
       ?> 

试试这个。这可能会帮助你。

+0

感谢您的回答,但是这个显示了变化的最高价格。如果我切换到另一个变化,它仍然显示相同的价格:( –

+0

例如有2个变化:第一个成本7美元,第二个14美元。我的代码总是显示最低的价格,而你的 - 最高的,我需要改变动态价格:如果我选择第一种变体,则显示价格为7美元,如果我选择第二种 - 14美元 –

+0

您是否有该选定变体的唯一编号? –

<?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(); 
foreach($available_variations as $key=>$val){ 
    if(trim($val['variation_id'])==**"your selected variant id"**){ 
        $variation_id=$available_variations[$key]['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; 
        } 
       ?> 
+0

可能这可能会帮助您获得选定的变体ID '$ variable_product1 = new WC_Product_Variation():: get_variation_id();' –