Skip to content

Instantly share code, notes, and snippets.

@trueqap
Created January 5, 2022 06:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trueqap/bfb974697029c067fca07c4e6bf5ca06 to your computer and use it in GitHub Desktop.
Save trueqap/bfb974697029c067fca07c4e6bf5ca06 to your computer and use it in GitHub Desktop.
WooCommerce Single Product Rating - Bootstrap 5 + FontAwesome
<?php
/**
* Single Product Rating
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product/rating.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 3.6.0
*/
if (! defined('ABSPATH')) {
exit; // Exit if accessed directly.
}
global $product;
if (! wc_review_ratings_enabled()) {
return;
}
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average = $product->get_average_rating();
?>
<?php
if ($rating_count > 0) : ?>
<div class="d-sm-flex align-items-center mt-0 mt-sm-2">
<?php //echo wc_get_rating_html($average, $rating_count); // WPCS: XSS ok.?>
<?php if (! empty($rating_count)) : ?>
<ul class="list-inline mb-0">
<?php
function get_rating_bootstrap($rate)
{
if ($rate > 0) {
$rate_int = $rate/0.5;
for ($i=1; $i<=floor($rate); $i++) {
echo "<li class='list-inline-item me-0 small'><i class='fas fa-star text-warning'></i></li>";
}
if (($rate_int % 2) == 0) {
for ($i=1; $i<=6-$rate; $i++) {
echo "<li class='list-inline-item me-0 small'><i class='far fa-star text-warning'></i></li>";
}
} else {
echo "<li class='list-inline-item me-0 small'><i class='fas fa-star-half-alt text-warning'></i></li>";
for ($i=1; $i<=6-($rate+1); $i++) {
echo "<li class='list-inline-item me-0 small'><i class='fas fa-star-half-alt text-warning'></i></li>";
}
}
} else {
// echo "<i style='color: red'>Not Yet rated</i>";
}
}
get_rating_bootstrap($average);
?>
</ul>
<?php endif; ?>
<?php if (comments_open()) : ?>
<?php //phpcs:disable?>
<a href="#reviews" class="woocommerce-review-link ms-1" rel="nofollow">(<?php printf(_n('%s customer review', '%s customer reviews', $review_count, 'woocommerce'), '<span class="count">' . esc_html($review_count) . '</span>'); ?>)</a>
<?php // phpcs:enable?>
<?php endif ?>
<?php endif; ?>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment