Woocommerce: come calcolare il prezzo minimo per categoria

Da qualche mese, abbiamo pubblicato con Evermind un progetto per una giovane e dinamica azienda milanese: Rentopolis.

Basato su WordPress e Woocommerce, il portale consente la gestione e la promozione di appartamenti prenotabili direttamente online; ogni appartamento appartiene ad una precisa destinazione turistica.

Una delle specifiche di progetto è quella di creare dei macro blocchi, attualmente visibili in homepage, sui quali comparisse il prezzo minimo della destinazione che, nel caso in esame, è una categoria di Woocommerce.

Ecco la query per calcolare il prezzo minimo tra tutti i prodotti di una categoria merceologica in Woocommerce:


function wpq_get_min_price_per_product_cat( $term_id ) {
global $wpdb;

$sql = "
SELECT MIN( meta_value+0 ) as minprice
FROM {$wpdb->posts}
INNER JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)
INNER JOIN {$wpdb->postmeta} ON ({$wpdb->posts}.ID = {$wpdb->postmeta}.post_id)
WHERE
( {$wpdb->term_relationships}.term_taxonomy_id IN (%d) )
AND {$wpdb->posts}.post_type = 'product'
AND {$wpdb->posts}.post_status = 'publish'
AND {$wpdb->postmeta}.meta_key = 'your_price_meta_key'
AND {$wpdb->postmeta}.meta_value != \"\"
AND {$wpdb->postmeta}.meta_value >0
";

return $wpdb->get_var( $wpdb->prepare( $sql, $term_id ) );
}

 

L’unica accortezza che devi avere nell’usare questa query è di sostituire “your_price_meta_key” con il nome della meta_key in uso. Nel caso di woocommerce (senza plugin esterni) è _wp_price