Skip to main content

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

Comments

Popular posts from this blog

How to use inner html value or data in php from javascript(innerHTML)?

 use inner html value or data in php from javascript(innerHTML)? <html> <body> <p id="demo">use inner html value in php(innerhtml)</p> <script>   var jassi = document.getElementById("demo").innerHTML;   //document.write(jassi); </script> <?php $jassi = '<script>document.write(jassi);</script>'; echo $jassi; ?> </body> </html>

How to get store data from WCFM(Best Multi Vendor Marketplace) Plugin?

 Get store data from WCFM(Best Multi Vendor Marketplace) Plugin. global $WCFM, $WCFMmp, $wp, $WCFM_Query, $post; $store_id = ''; if ( isset( $attr['id'] ) && !empty( $attr['id'] ) ) { $store_id = absint($attr['id']); } if (  wcfm_is_store_page() ) { $wcfm_store_url = get_option( 'wcfm_store_url', 'store' ); $store_name = apply_filters( 'wcfmmp_store_query_var', get_query_var( $wcfm_store_url ) ); $store_id  = 0; if ( !empty( $store_name ) ) { $store_user = get_user_by( 'slug', $store_name ); } $store_id    = $store_user->ID; } $user_id = $store_id;  $vendor_data = get_user_meta( $user_id, 'wcfmmp_profile_settings', true ); $street_1 = $vendor_data['address']['street_1']; $street_2 = $vendor_data['address']['street_2']; $city     = $vendor_data['address']['city']; $zip      = $vendor_data['address']['zip&#

How to create login with phone number in woocommerce wordpress?

Create login with phone number in woocommerce wordpress. function wooc_extra_register_fields() {?>        <p class="form-row form-row-wide">        <label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?><span class="required">*</span></label>        <input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" />        </p>            <?php  }  add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );  function wooc_validate_extra_register_fields( $username, $email, $validation_errors ) { if ( isset( $_POST['billing_phone'] ) ) {    $hasPhoneNumber= get_users('meta_value='.$_POST['billing_phone']);    if ( !empty($hasPhoneNumber)) {      $validation_er