Mostrare la gamma di prezzi per le varianti dei prodotti Woocommerce
Sto lavorando a un negozio online con Woocommerce, molti prodotti hanno varianti di dimensione e prezzo. C'è un modo per visualizzare la gamma di prezzi (dal più alto al più basso) delle varianti nella pagina del prodotto?

prova così:
/**
* Questo codice va aggiunto al file functions.php del tuo tema
**/
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
$price = '';
if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) $price .= '<span class="from">' . _x('Da', 'min_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->get_price());
if ( $product->max_variation_price && $product->max_variation_price !== $product->min_variation_price ) {
$price .= '<span class="to"> ' . _x('a', 'max_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->max_variation_price);
}
return $price;
}

Mi sono imbattuto in questo thread cercando la stessa soluzione per i prodotti raggruppati. Alla fine ho trovato il codice qui sotto... quindi lo pubblico nel caso possa aiutare altri. Questo non funzionerà per i prodotti variabili, solo per quelli raggruppati. Ho pensato che potesse essere rilevante dato che i prodotti raggruppati/variabili sono abbastanza simili e che altri potrebbero imbattersi in questo thread. Probabilmente potresti sistemare un po' lo span ma questa è la versione rapida e sporca che mi ha fatto partire!
/*** Restituisce l'intervallo di prezzo per i prodotti raggruppati **/
function wc_grouped_price_html( $price, $product ) {
$all_prices = array();
foreach ( $product->get_children() as $child_id ) {
$all_prices[] = get_post_meta( $child_id, '_price', true );
}
if ( ! empty( $all_prices ) ) {
$max_price = max( $all_prices );
$min_price = min( $all_prices );
} else {
$max_price = '';
$min_price = '';
}
$price = '<span class="from">' . _x('Da: ', 'min_price', 'woocommerce') . woocommerce_price( $min_price ) . _x(' a ', 'max_price', 'woocommerce') . ' </span>' . woocommerce_price( $max_price );
return $price;
}
add_filter( 'woocommerce_grouped_price_html', 'wc_grouped_price_html', 10, 2 );
