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.