2017-12-18 3 views
1

Ich habe eine Liste von Produkten und ich habe ein Problem über die Anzeige der Preisspanne in variablen Produkten.Anzeige normalen Preis oder variable Preisspanne in Woocommerce

Wie Sie sehen können, wenn der Preis ein normaler Preis ist, funktioniert alles. Dennoch, wenn das Produkt einen variablen Preis hat die angezeigten Preis ist 0 €

Nun, der Code für Preisanzeigen dies:

<?php 
if (isset($ebookstore_theme_option['woo-list-price']) && 
    $ebookstore_theme_option['woo-list-price'] == 'enable') { 
    $ebookstore_woo .= '<strong class="amount">'.esc_attr($currency).''.$price_sale.'</strong>'; 
} 

Jede Idee, wie der variablen Bereich Preis angezeigt?

Antwort

1

Für eine Variable Produkt in WooCommerce Sie brauchen:

  • variable Produkttyp
  • erhalten die min und die max Preise zielen.

Sie sollten also eine Instanz des Produktobjekts benötigen. In der Regel können Sie es mit bekommen:

global $product; 

Wenn es nicht Sie intead wird verwenden funktioniert:

global $post; 
$product = wc_get_product($post->ID); 

nun von diesem Punkt werden Sie verwenden Sie die folgende:

<?php 
global $product; 

if (isset($ebookstore_theme_option['woo-list-price']) && $ebookstore_theme_option['woo-list-price'] == 'enable'){ 

    // For all product types that are not "variable products" 
    if(! $product->is_type('variable')){ 
     $ebookstore_woo .= '<strong class="amount">'.esc_attr($currency).''.$price_sale.'</strong>'; 
    } 
    // For variable products  
    else { 
     $min_price = $product->get_variation_price('min'); 
     $max_price = $product->get_variation_price('max'); 

     $ebookstore_woo .= '<strong class="amount">'.esc_attr($currency).''.$min_price.' - '.esc_attr($currency).''.$max_price.'</strong>'; 
    } 
} 

Wie Sie sehen können, verwende ich die WC_Product_Variable methods


Mai werden Sie nicht wissen, aber WooCommerce mehrere Formatierungspreisfunktionen wie hat:

  • wc_price($price);
  • wc_format_price_range($from, $to);
  • wc_format_sale_price($regular_price, $sale_price);

Sie werden alle die Währung

umfassen
Verwandte Themen