03 July 2021

How to get review bar in Woo-commerce in wordpress.

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]'); ?>
 

No comments:

Post a Comment

How to create youtube videos slider with play and pause option in wordpress?

Create youtube videos slider with play and pause option in wordpress youtube videos slider Use this shortcode:- [punjab_today] function my_...