1

On my WooCommerce site I am trying to output the star rating for a product that is reviewed. Instead, it outputs this:

Rated 3.38 out of 5 based on 8 customer ratings

What am I missing with the following code?

$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average      = $product->get_average_rating();
echo wc_get_rating_html( $average, $rating_count );

When I switch from my custom theme to default WordPress theme, the ratings then show.

3

Suffered with same problem. Finally after lot of search and trial I came up with this solution.

This gets the template where the rating is displayed from. But it displays like this: Rated 4.50 out of 5 based on 2 customer ratings (2 customer reviews)

<div class="rating-custom">
    <?php wc_get_template( 'single-product/rating.php' ); ?>
</div>

Then paste this css code in a custom css.

/*star rating for products*/
.rating-custom div.product .woocommerce-product-rating {
    margin-bottom: 1.618em;
}

.rating-custom .woocommerce-product-rating .star-rating {
    margin: .5em 4px 0 0;
    float: left;
}

.rating-custom .woocommerce-product-rating::after, .rating-custom .woocommerce-product-rating::before {

    content: ' ';
    display: table;

}

.rating-custom .woocommerce-product-rating {
    line-height: 2;
}

.rating-custom .star-rating {
    float: right;
    overflow: hidden;
    position: relative;
    height: 1em;
    line-height: 1;
    font-size: 1em;
    width: 5.4em;
    font-family: star;
}

.rating-custom .star-rating::before {
    content: '\73\73\73\73\73';
    color: #d3ced2;
    float: left;
    top: 0;
    left: 0;
    position: absolute;
}

.rating-custom .star-rating {
    line-height: 1;
    font-size: 1em;
    font-family: star;
}

.rating-custom .star-rating span {
    overflow: hidden;
    float: left;
    top: 0;
    left: 0;
    position: absolute;
    padding-top: 1.5em;
}

.rating-custom .star-rating span::before {
    content: '\53\53\53\53\53';
    top: 0;
    position: absolute;
    left: 0;
}

.rating-custom .star-rating span {

    overflow: hidden;
    float: left;
    top: 0;
    left: 0;
    position: absolute;
    padding-top: 1.5em;

}

Output:

rating output

0

Perhaps, it is easier to integrate an existing solution to achieve what you want. See image below:

Rating Score

I recently found TrustFeed reviews for WooCommerce, it helped me to replace the basic and boring WooCommerce reviews forms with an advanced and dynamic rating and reviews solution that actually inspire shoppers to buy more!

The plugin is free and can be dowloaded via official WordPress plugin repository:

https://wordpress.org/plugins/trustfeed-reviews-and-customer-feedback-for-woocommerce/

It comes with special features to help honest online businesses to collect and showcase customer reviews to boost sales, conversions, trust and social proof.

Some special features are:

  • Create custom satisfaction surveys
    • Star Ratings
    • Dynamic Tags
    • Text Reviews
    • More coming…
  • Send Mail After Purchase emails to encourage shoppers to leave reviews.
  • Collect reviews at scale.
  • Showcase reviews on key conversion points of your website.
  • Display your reviews in an useful, responsive and customizable format.
  • Moderate and manage feedback/reviews.
  • Create a mini-site to increase your SEO with User Generated Content
  • Customize widget’s look and feel.
  • Learn from data driven insights

Thee good news. You can start for free!

  • To learn more about TrustFeed you can visit www.trustfeed.co
  • To view the admin panel, just login at https://admin.trustfeed.co and create a free account.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.