Magento 2: mostra le valutazioni dei prodotti per ciascuna stella, le valutazioni medie e% delle valutazioni a 5 stelle sulla pagina del prodotto


14

Voglio visualizzare le valutazioni sulla pagina del prodotto in questo modo:

inserisci qui la descrizione dell'immagine

  1. Quanti utenti hanno selezionato le valutazioni in stelle 5/4/3/2/1
  2. La valutazione media, visualizzata come stelle
  3. La percentuale di utenti ha selezionato una valutazione a 5 stelle

Ho bisogno di aggiungere un codice personalizzato per quello, quindi per favore non suggerire getReviewsSummaryHtml .


Puoi per favore pubblicare la soluzione completa qui? Devo fare lo stesso ma non è bravo a farlo.
Jai,

Risposte:


9

Crea e chiama questo nuovo metodo con ID prodotto. Assicurati inoltre di avere solo 1 opzione di valutazione abilitata in 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;
    }

sì, ho solo una valutazione attiva da admin. quindi lasciami provare questo codice
Ronak Chauhan

Grazie mille :) Funziona bene. Molte molte grazie ancora
Ronak Chauhan il

Dove aggiungere questo codice al risultato sopra? Devo fare la stessa cosa.
Jai,

@Jai, devi inserire questo codice in uno qualsiasi dei tuoi file di blocco del modulo personalizzato e chiamare questo metodo da dove vuoi. Come puoi chiamarlo dalla pagina dell'elenco delle recensioni del tuo tema.
Ashish Jagnani,

Potete per favore farlo in modo che io possa seguire di conseguenza? Puoi aggiungere come hai fatto nel tuo lavoro. Pubblica il codice del blocco che hai creato e il modo in cui chiami nella pagina dell'elenco delle recensioni.
Jai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.