How to Get aggregateRating Schema / Google Structured Data for Woocommerce Reviews
If you’re theme is not utilizing Woocommerce’s built in Schema functionality, or you are seeing an error in Search Console or Google’s Structured Data Testing Tools that you need to have aggregateRating
when you have one or more reviews, here’s what you need to fix this:
<?php $rating = get_post_meta( get_the_ID(), '_wc_average_rating', true );
if (!empty($rating) && $rating >= 1) {
$review_count = $product->get_review_count(); ?>
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<meta itemprop="ratingValue" content="<?php echo $rating; ?>">
<meta itemprop="reviewCount" content="<?php echo $review_count; ?>">
</div>
<?php } ?>
= 1) {
?>
div
opens.
To explain the code…
First, with $rating
we simply grab the meta data for the product. This is stored by Woocommerce in the wp_postmeta
database field after the first review is left for the product, and updated as more reviews come in. It’s the average rating value of all the reviews.
Then we create a container, i.e. that <div itemprop...
code. This states that this information pertains to aggregateRating
.
The next to meta
fields set the required information. We show the $rating
here, which again is the average value of all reviews / ratings.
Then we get the number of reviews on the next line (reviews are just default WP comments with a 1 – 5 star rating scale for Woocommerce.)
Hope that is useful!
Up Next: How to Get Memberful to Work with Cached WordPress Sites