Looking to get the average category price based on the products inside the WooCommerce category? All you may need is to query the post meta table.
1 answers
1
Get the average category price
To get the average category price, you need to query all the categories and their products as per below.
global $wpdb;
$args = array(
'taxonomy' => 'product_cat',
'posts_per_page' => -1,
'hide_empty' => 0,
'orderby' => 'title',
'order' => 'ASC',
);
foreach ( get_categories( $args ) as $category ) :
$post_ids = get_posts( array(
'post_type' => 'product',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => $category->term_id,
),
),
'fields' => 'ids',
) );
$product_prices = 0;
$product_count = 0;
foreach ( $post_ids as $pId ) :
$price = $wpdb->get_var("SELECT SUM(meta_value) FROM $wpdb->postmeta WHERE meta_key = '_price' AND post_id = $pId");
$product_prices += $price;
$product_count++;
endforeach;
$average_product_price = number_format( $product_prices/$product_count, 1 );
echo $average_product_price;
endforeach;
— Support WizardAnswer 1