|
我想在首页上显示客户评论的总数,我尝试了这种方法:7 ]5 o% @4 V4 b
'approve',6 y( |6 W6 |2 v5 ]
'post_status' => 'publish',
6 {/ _7 c- z5 L" f/ [$ }1 D 'post_type' => 'product'' q/ E" J4 f( b6 [
);0 I% i2 R8 p8 `. d, L
$comments_query = new WP_Comment_Query;( R; J+ o# P- y( m& ^2 r- J% o# H$ R
$comments = $comments_query->query( $args );
" _, H {; K% u. j $count = get_comment_count($comments);; t) `: Y7 }/ T* g' z
?>
+ ?( f7 w `0 |
" V: z: v, {5 m' x- O [3 E $ N( ^& |3 [0 q
& z+ x( ~3 H3 [6 s但是没有按我想要的那样工作!例如,我有4条评论,此代码仅显示(1条评论),而不是(4条评论)。8 y8 }/ K0 F) F# R$ O
关于平均水平,我对主页上的工作方式一无所知,我只知道如何使用下面的代码在单个产品页面上实现此功能:# x& v3 D* ?! `7 x U% |$ W
$average = $product->get_average_rating();
9 {; e9 A7 i' v6 I4 G但是,此代码仅适用于单个产品的平均评分,而不是我想要的所有评论的全球平均值。5 \7 F8 G6 N) }0 } ?" c; _
任何帮助表示赞赏。
; y" U3 E' l& e! l$ f) N( n2 M. Z $ s- O( p1 z2 E7 Q
解决方案:
* |% p9 ?& C# G g, [7 R
3 ~7 c' o) |, L' M8 i
+ P1 I" P) G# D A
6 i* h" W+ [2 p7 v4 A0 y; X
5 T4 u1 q A$ z! R4 `更新 (在没有评论的情况下避免最后一个函数的错误)
z7 `+ u2 R, X0 h- s: ?# b* ~
9 S( ?4 Y* P6 R! }: Y5 B3 b在下面,您将找到4个自定义函数,这些函数将为您提供:7 }6 D# {+ t M( Y I
[ol]产品总评论数# R) D* s- J2 f( e! ^: X
产品评分计数数据,这些数据将用于: 5 F, v. G' U5 M$ U0 i. h7 c
产品按评分输出html计数( Y* h# j, @) O( \ Q+ N; v1 F9 |0 b# Q
产品评级平均产量html
L+ h' w- V5 j7 {8 r/ \% ?9 r
: [$ t7 @- C" j+ n* B; B9 Y[/ol], V, ^ g6 m T: J3 l5 o' [
功能代码:9 i* [7 v. H9 \6 N# T. m) t9 J
function get_total_reviews_count(){
" e+ [# ^( t; E9 ]# T return get_comments(array(/ H" [! K/ U" W/ u2 U
'status' => 'approve',8 A: K! Q" ?* F4 i
'post_status' => 'publish',* I# Y) I4 b: l% n
'post_type' => 'product',9 f+ A% K2 Q& p" _- ~
'count' => true
( o( K; v+ q g: F4 F: E ));( `- V% N2 a% x
}. Z% K( l' i, \* h2 _
function get_products_ratings(){
7 m: ]* y1 g* G% H+ M1 h$ G, d global $wpdb;
2 ]2 U+ [+ Q6 n, \ ] return $wpdb->get_results("
! F9 X* A6 B1 @$ x SELECT t.slug, tt.count$ G7 t, ]" B& i: K" d8 b, i
FROM {$wpdb->prefix}terms as t
! N; ~; P5 H1 O0 P$ o% f1 c. G JOIN {$wpdb->prefix}term_taxonomy as tt ON tt.term_id = t.term_id: G" x# |* [' G9 Y/ m
WHERE t.slug LIKE 'rated-%' AND tt.taxonomy LIKE 'product_visibility'
3 V. m$ \, N, J ORDER BY t.slug
' T2 _, z3 @* I0 M, c" \$ Y ");+ m6 L0 F: e, `# t& }% P4 j
}0 o8 F6 `7 v" c; _6 f$ \* m& i
function products_count_by_rating_html(){, \5 V _! p& |) c5 w; i7 u
$star = 1;
' g, O* G* T% @* W' H8 u $html = '';
: a" G, ~: L; q m6 Z foreach( get_products_ratings() as $values ){9 ^% @' l G6 u2 _/ ]
$star_text = '<strong>'.$star.' '._n('Star', 'Stars', $star, 'woocommerce').'<strong>: ';0 Q# \ Z3 ^8 `* I4 M9 Q3 m
$html .= 'slug.'">'.$star_text.$values->count.'';" J: [( _" _$ \; D5 c
$star++;* z2 X$ y4 V8 B2 T
}
/ d; i% W6 i% m6 s! ?1 I return ''.$html.'';1 N0 o% v( ~) o l* _& P
}
7 o n/ G2 n" Y* y; [! w6 u6 U- Ofunction products_rating_average_html(){
3 E- M* A& ], G) i# h9 ` $stars = 1;
2 L4 W! \- D0 Z% E# P/ t* @ $average = 0;8 S, S# W' v/ Y9 g$ l# P7 x. ^
$total_count = 0;# S8 G, |$ ^ L7 |7 O0 I* Q! w& s
if( sizeof(get_products_ratings()) > 0 ) :
* x4 p. w. A8 m* ]: `) {# z3 X6 S foreach( get_products_ratings() as $values ){
- G0 m/ z# }1 _. n9 t, P $average += $stars * $values->count;
# b$ V. a. k7 o& S8 B $total_count += $values->count;
7 O4 B+ w5 b9 Q# `, B/ ^ $stars++;
3 @' L4 ~5 m; s! f7 ~ }
5 R ^* E2 x( v- B" p1 T return ''.round($average / $total_count, 1).' / 5 '. __('Stars average').': ]: Z% A( @3 b2 L
';- c. O; V! K" ?4 O, i% V
else :, M* G$ Y' D, V% m6 d- J
return ''. __('No reviews yet', 'woocommerce').'
5 c# [/ m, |8 u1 t7 x';
( O4 d, V2 P+ F' w/ @. A endif;3 x1 D, s+ L: {0 j7 H) i
}
, ]1 c! l# O @代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
" |( A9 v1 [( |% z0 T7 K1 B7 P, B0 V用法$ A* N% M% B1 w% _
[ol]
, s7 ^2 |& B4 v9 e- M( U) k客户评论总数:5 J; y" I+ ?; P( g, o9 J
echo ''.__('Total reviews','woocommerce').': '.get_total_reviews_count().'
& n) Q5 E5 W+ B) `$ e0 P9 J';* Z3 p8 x4 t9 N3 v1 G; j- X% F
: w0 @) e) Z s" ?按评分列表计数的产品:
e2 [9 \$ c8 Secho products_count_by_rating_html();
' E3 g5 Z3 K: F$ Q: u: k* A' _
' l6 P0 O8 c! X产品平均评价:
! i! [" T% v- e4 i: Jecho products_rating_average_html();6 B7 ]# a4 r! e+ S$ _6 V
; v. }8 H3 J8 u: Q& O7 D3 b[/ol] |
|