提问人:Lgane 提问时间:6/26/2023 最后编辑:Lgane 更新时间:6/28/2023 访问量:85
如何获得自定义分类法的平均评分和评论?
How to get average rating and reviews for custom taxonomy?
问:
我找到并使用了代码(感谢此代码的创建者!在 WooCommerce 中显示客户评论总数和平均评分
它(在我的情况下)在产品页面和分类页面上显示整个商店的所有评论和评级的数量。
例如: 我有一个自定义分类“brand_name”。 我希望阿迪达斯产品(分类“brand_name”)仅显示其所有产品和数量的平均评级。并且只有当商品的整体评分超过3星时。 对于耐克(分类“brand_name”),仅显示其所有产品和数量的平均评级。并且只有当商品的整体评分超过3星时。
非常感谢您对我帖子的帮助和关注。
我使用的代码(原文链接)
function get_total_reviews_count(){
return get_comments(array(
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'product',
'count' => true
));
}
function get_products_ratings(){
global $wpdb;
return $wpdb->get_results("
SELECT t.slug, tt.count
FROM {$wpdb->prefix}terms as t
JOIN {$wpdb->prefix}term_taxonomy as tt ON tt.term_id = t.term_id
WHERE t.slug LIKE 'rated-%' AND tt.taxonomy LIKE 'product_visibility'
ORDER BY t.slug
");
}
function products_count_by_rating_html(){
$star = 1;
$html = '';
foreach( get_products_ratings() as $values ){
$star_text = '<strong>'.$star.' '._n('Star', 'Stars', $star, 'woocommerce').'<strong>: ';
$html .= '<li class="'.$values->slug.'">'.$star_text.$values->count.'</li>';
$star++;
}
return '<ul class="products-rating">'.$html.'</ul>';
}
function products_rating_average_html(){
$stars = 1;
$average = 0;
$total_count = 0;
if( sizeof(get_products_ratings()) > 0 ) :
foreach( get_products_ratings() as $values ){
$average += $stars * $values->count;
$total_count += $values->count;
$stars++;
}
return '<p class="rating-average">'.round($average / $total_count, 1).' / 5 '. __('Stars average').'</p>';
else :
return '<p class="rating-average">'. __('No reviews yet', 'woocommerce').'</p>';
endif;
}
echo '<p>'.__('Total reviews','woocommerce').': '.get_total_reviews_count().'</p>';
echo products_count_by_rating_html();
echo products_rating_average_html();
答: 暂无答案
评论