Get review bar in Woo-commerce in wordpress.
function get_all_products() {
$ps = new WP_Query( array(
'post_type' => 'product',
'post_status' => 'publish',
'author' => 130,
'posts_per_page' => '-1'
) );
$arr = array();
while($ps->have_posts()){
$ps->the_post();
$arr[] = get_the_ID();
}
return $arr;
}
function get_store_bar_rating(){
$products = get_all_products();
foreach ($products as $key => $value) {
$product_id = $value;
$get_rating_count = get_post_meta( $product_id, '_wc_rating_count', true );
if(is_array($get_rating_count)){
foreach($get_rating_count as $key=>$value){
if($key==1){
$onerating += $value;
}
if($key==2){
$tworating += $value;
}
if($key==3){
$threerating += $value;
}
if($key==4){
$fourrating += $value;
}
if($key==5){
$fiverating += $value;
}
}
}
}
if(empty($onerating)){
$onerating = 0;
}
if(empty($tworating)){
$tworating = 0;
}
if(empty($threerating)){
$threerating = 0;
}
if(empty($fourrating)){
$fourrating = 0;
}
if(empty($fiverating)){
$fiverating = 0;
}
$totalrating = $onerating + $tworating + $threerating + $fourrating + $fiverating;
/* echo '1 =' . $onerating;
echo '<br>';
echo '2 =' . $tworating;
echo '<br>';
echo '3 =' . $threerating;
echo '<br>';
echo '4 =' . $fourrating;
echo '<br>';
echo '5 =' . $fiverating;
echo '<br>'; */
$onewidth = $onerating * 100 / $totalrating;
$twowidth = $tworating * 100 / $totalrating;
$threewidth = $threerating * 100 / $totalrating;
$fourwidth = $fourrating * 100 / $totalrating;
$fivewidth = $fiverating * 100 / $totalrating;
?>
<style>
.review_box_con{
}
.review_row{
display : flex;
margin-bottom:20px
}
.outer_review_bar{
width:100%;
height:30px;
background:#f1f1f1;
margin-left : 70px;
overflow:hidden;
}
.inner_review_bar{
height:30px;
background:#F6C1B8;
}
.review_star_tx {
font-size: 20px;
font-weight: 500;
display: inline-block;
width: 87px;
text-align: center;
line-height: 28px;
}
span.total_bar_rating {
font-size: 21px;
font-weight: 700;
margin-bottom: 9px;
box-sizing: border-box;
display: inline-block;
}
</style>
<div class="review_box_con">
<span class="total_bar_rating"><?php if(empty($totalrating)){ echo '0'; }else { echo $totalrating; } ?> reviews</span>
<div class="review_row">
<span class="review_star_tx">5 Star</span>
<div class="outer_review_bar">
<div class="inner_review_bar" style="width:<?php if(!empty($fivewidth)){ echo $fivewidth .'%'; }else { echo '0'; } ?>">
</div>
</div>
<span class="review_star_tx" ><?php if(empty($fiverating)){ echo '0'; }else { echo $fiverating; } ?></span>
</div>
<div class="review_row">
<span class="review_star_tx">4 Star</span>
<div class="outer_review_bar">
<div class="inner_review_bar" style="width:<?php if(!empty($fourwidth)){ echo $fourwidth .'%'; }else { echo '0'; } ?>">
</div>
</div>
<span class="review_star_tx" ><?php if(empty($fourrating)){ echo '0'; }else { echo $fourrating; } ?></span>
</div>
<div class="review_row">
<span class="review_star_tx">3 Star</span>
<div class="outer_review_bar">
<div class="inner_review_bar" style="width:<?php if(!empty($threewidth)){ echo $threewidth .'%'; }else { echo '0'; } ?>">
</div>
</div>
<span class="review_star_tx" ><?php if(empty($threerating)){ echo '0'; }else { echo $threerating; } ?></span>
</div>
<div class="review_row">
<span class="review_star_tx">2 Star</span>
<div class="outer_review_bar">
<div class="inner_review_bar" style="width:<?php if(!empty($twowidth)){ echo $twowidth .'%'; }else { echo '0'; } ?>">
</div>
</div>
<span class="review_star_tx" ><?php if(empty($tworating)){ echo '0'; }else { echo $tworating; } ?></span>
</div>
<div class="review_row">
<span class="review_star_tx">1 Star</span>
<div class="outer_review_bar">
<div class="inner_review_bar" style="width:<?php if(!empty($onewidth)){ echo $onewidth .'%'; }else { echo '0'; } ?>">
</div>
</div>
<span class="review_star_tx" ><?php if(empty($onerating)){ echo '0'; }else { echo $onerating; } ?></span>
</div>
</div>
<?php
}
add_shortcode('store_bar_rating', 'get_store_bar_rating');
User it anywhere
<?php echo do_shortcode('[store_bar_rating]'); ?>
Comments
Post a Comment