2017-06-21 3 views
0

Comment afficher le prix variable woocommerce pour la variation active actuelle sur une seule page de produit? J'utilise le code:Afficher la variable woocommerce prix du produit

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

Mais il ne montre que le plus bas prix variable au lieu du prix de variation sélectionné. Des idées pour afficher le prix actuel de la variation active?

Répondre

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

Essayez ceci. Cela peut vous aider.

+0

Merci pour la réponse, mais celui-ci montre le prix le plus élevé des variations. Si je passe à une autre variation, il affiche toujours le même prix :( –

+0

Par exemple, il y a 2 variations: 1er prix 7 USD, 2ème 14 USD Mon code affiche toujours le prix le plus bas, et le vôtre - le plus élevé. prix dynamique: si je sélectionne la 1ère variante, il affiche le prix 7 USD, et si je sélectionne 2ème - 14 USD –

+0

Avez-vous un identifiant unique pour les variantes sélectionnées? –

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

Cela peut vous aider à obtenir l'identifiant des variantes sélectionnées '$ variable_product1 = new WC_Product_Variation() :: get_variation_id();' –