Magento 2: Hiển thị xếp hạng sản phẩm cho từng sao, xếp hạng trung bình và% xếp hạng 5 sao trên trang sản phẩm


14

Tôi muốn hiển thị xếp hạng trên trang sản phẩm như thế này:

nhập mô tả hình ảnh ở đây

  1. Có bao nhiêu người dùng chọn xếp hạng sao 5/4/3/2/1
  2. Xếp hạng trung bình, được hiển thị dưới dạng sao
  3. Tỷ lệ người dùng chọn xếp hạng 5 sao

Tôi cần thêm mã tùy chỉnh cho điều đó, vì vậy vui lòng không đề xuất getReviewSummaryHtml .


Bạn có thể vui lòng gửi cho bạn giải pháp hoàn chỉnh ở đây? Tôi cần phải làm như vậy nhưng không tốt trong việc đó.
Jai

Câu trả lời:


9

Tạo và gọi phương thức mới này với ID sản phẩm. Ngoài ra, hãy đảm bảo bạn chỉ có 1 tùy chọn xếp hạng cho phép trong quản trị viên.

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;
    }

có, tôi chỉ có một đánh giá duy nhất hoạt động từ quản trị viên. vì vậy hãy để tôi thử mã này
Ronak Chauhan

Cảm ơn rất nhiều :) Nó hoạt động tốt. Rất cám ơn một lần nữa
Ronak Chauhan

Nơi để thêm mã này vào kết quả trên? Tôi cần phải làm điều tương tự.
Jai

@Jai, Bạn phải đặt mã này vào bất kỳ tệp khối mô-đun tùy chỉnh nào của bạn và gọi phương thức này từ nơi bạn muốn. Giống như bạn có thể gọi nó từ trang danh sách đánh giá của chủ đề của bạn.
Ashish Jagnani

Bạn có thể làm ơn để tôi có thể làm theo? Bạn có thể thêm cách bạn đã làm trong công việc của bạn. Đăng mã của khối bạn đã tạo và cách bạn gọi trong trang danh sách đánh giá.
Jai
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.