获取循环中的WooCommerce Star Ratings

时间:2016-09-13 20:16:10

标签: php wordpress woocommerce

我有一个为我的WooCommerce Shop Page构建的自定义模板,可以按不同部分的类别提取产品。

我需要知道如何将星级评分拉入每个产品的循环中。我几个小时以来所做的所有搜索都没有结果。

2 个答案:

答案 0 :(得分:4)

我能够回答我自己的问题。以下是如何在循环中获得星级评分。

首先使用以下代码:

    <?php if ($average = $product->get_average_rating()) : ?>
    <?php echo '<div class="star-rating" title="'.sprintf(__( 'Rated %s out of 5', 'woocommerce' ), $average).'"><span style="width:'.( ( $average / 5 ) * 100 ) . '%"><strong itemprop="ratingValue" class="rating">'.$average.'</strong> '.__( 'out of 5', 'woocommerce' ).'</span></div>'; ?>
<?php endif; ?>

确保将css类:woocommerce包含在容器中,例如:

<ul class="woocommerce">
<li>
    <?php if ($average = $product->get_average_rating()) : ?>
    <?php echo '<div class="star-rating" title="'.sprintf(__( 'Rated %s out of 5', 'woocommerce' ), $average).'"><span style="width:'.( ( $average / 5 ) * 100 ) . '%"><strong itemprop="ratingValue" class="rating">'.$average.'</strong> '.__( 'out of 5', 'woocommerce' ).'</span></div>'; ?>
<?php endif; ?>
</li>
</ul>

此外,我结束了改变星星的大小和颜色:

    .woocommerce {
        .star-rating {
      width: 110px !important;
      height: 30px !important;
      float: left;
      &:before {
        font-size: 20px;
      }
      span {
        &:before {
          font-size: 20px;
          color: #ffa500;
        }
      }
    }

答案 1 :(得分:0)

你的意思是这样吗?

global $product;
echo $product->get_rating_html();