Magento 2: Показуйте рейтинги продуктів для кожної зірки, середні оцінки та% від 5 зіркових оцінок на сторінці продукту


14

Я хочу відобразити оцінки на сторінці продукту так:

введіть тут опис зображення

  1. Скільки користувачів вибрали 5/4/3/2/1 зіркових оцінок
  2. Середня оцінка, відображається у вигляді зірок
  3. Відсоток користувачів обрав рейтинг 5 зірок

Мені потрібно додати спеціальний код для цього, тому, будь ласка, не пропонуйте getReviewsSummaryHtml .


Чи можете ви опублікувати повне рішення тут? Мені потрібно робити те саме, але не добре в цьому.
Джай

Відповіді:


9

Створіть і зателефонуйте цьому новому методу з ідентифікатором продукту. Також переконайтеся, що в адміністраторі є лише 1 параметр оцінки.

public function getAllStart($pid) {
    $review = $this->_objectReview->getCollection()     //\Magento\Review\Model\Review $reviewFactory (_objectReview)
            ->addFieldToFilter('main_table.status_id', 1)
            ->addEntityFilter('product', $pid)          //$pid = > your current product ID
            ->addStoreFilter($this->_storeManager->getStore()->getId())
            ->addFieldToSelect('review_id')
    ;
    $review->getSelect()->columns('detail.detail_id')->joinInner(
            ['vote' => $review->getTable('rating_option_vote')], 'main_table.review_id = vote.review_id', array('review_value' => 'vote.value')
    );
    $review->getSelect()->order('review_value DESC');
    $review->getSelect()->columns('count(vote.vote_id) as total_vote')->group('review_value');
    for ($i = 5; $i >= 1; $i--) {
        $arrRatings[$i]['value'] = 0;
    }
    foreach ($review as $_result) {
        $arrRatings[$_result['review_value']]['value'] = $_result['total_vote'];
    }
    return $arrRatings;
    }

так, у мене лише один рейтинг від адміністратора. тож дозвольте спробувати цей код
Ронак Чаухан

Велике спасибі :) Це працює чудово. Велике спасибі ще раз
Ронак Чаухан

Де додати цей код до вищезгаданого результату? Мені потрібно зробити те саме.
Джай

@Jai, Ви повинні ввести цей код у будь-який файл власного блоку модулів та зателефонувати цьому методу звідти, де ви хочете. Можливо, ви можете зателефонувати на сторінку списку оглядів вашої теми.
Ashish Jagnani

Чи можете ви, будь ласка, зробити так, щоб я міг відповідати відповідно? Ви можете додати, як ви зробили у своїй роботі. Опублікуйте код створеного блоку та спосіб дзвінка на сторінці списку оглядів.
Джай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.