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.