显示woocommerce可变产品价格

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)

尝试这个。这可能对您有帮助。