Magento 2: Tampilkan peringkat produk untuk setiap bintang, peringkat rata-rata dan% dari peringkat bintang 5 di halaman produk


14

Saya ingin menampilkan peringkat pada halaman produk seperti ini:

masukkan deskripsi gambar di sini

  1. Berapa banyak pengguna yang memilih peringkat bintang 5/4/3/2/1
  2. Peringkat rata-rata, ditampilkan sebagai bintang
  3. Persentase pengguna memilih peringkat bintang 5

Saya perlu menambahkan kode khusus untuk itu, jadi tolong jangan menyarankan getReviewsSummaryHtml .


Bisakah Anda memposting solusi lengkap di sini? Saya perlu melakukan hal yang sama tetapi tidak baik dalam melakukannya.
Jai

Jawaban:


9

Buat dan panggil metode baru ini dengan ID produk. Pastikan juga Anda hanya mengaktifkan 1 opsi peringkat di admin.

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

ya, saya hanya punya satu peringkat aktif dari admin. jadi izinkan saya mencoba kode ini
Ronak Chauhan

Terima kasih banyak :) Ini bekerja dengan baik. Banyak terima kasih banyak lagi
Ronak Chauhan

Di mana menambahkan kode ini ke hasil di atas? Saya perlu melakukan hal yang sama.
Jai

@Jai, Anda harus meletakkan kode ini di salah satu file blok modul khusus Anda dan memanggil metode ini dari tempat yang Anda inginkan. Seperti Anda dapat memanggilnya dari halaman daftar ulasan tema Anda.
Ashish Jagnani

Bisakah Anda melakukannya agar saya dapat mengikuti? Anda dapat menambahkan apa yang telah Anda lakukan dalam pekerjaan Anda. Posting kode blok yang Anda buat dan bagaimana Anda memanggil di halaman daftar ulasan.
Jai
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.