2017-06-21 17 views
0

現在のアクティブなバリエーションのためのウォーコマースの変動価格を単一の商品ページに表示するにはどうすればよいですか? 私は、コードを使用します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; 
        } 
       ?> 

をしかし、それは代わりに、現在選択されている変動の価格の唯一の最低価格変動を示しています。 アクティブなバリエーションの現在の価格を表示する方法はありますか?

答えて

1
<?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つのバリエーションがあります:第1価格は7 USD、第2 USDは14です。私のコードは常に最低価格を表示し、あなたも最高です。動的に価格を変更する:最初のバリエーションを選択すると、価格が7 USD、2番目を選択した場合 - 14 USD –

+0

選択したバリアントに一意のIDがありますか? –

1
<?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();' –

関連する問題