Magento 2: Produktbewertungen für jeden Stern, Durchschnittsbewertungen und% der 5-Sterne-Bewertungen auf der Produktseite anzeigen


14

Ich möchte Bewertungen auf der Produktseite wie folgt anzeigen:

Bildbeschreibung hier eingeben

  1. Wie viele Benutzer haben 5/4/3/2/1 Sternebewertungen ausgewählt
  2. Die durchschnittliche Bewertung, angezeigt als Sterne
  3. Prozentsatz der Benutzer, die eine 5-Sterne-Bewertung gewählt haben

Ich muss dafür benutzerdefinierten Code hinzufügen . Schlagen Sie daher getReviewsSummaryHtml nicht vor .


Kannst du bitte deine komplette Lösung hier posten? Ich muss dasselbe tun, aber ich kann es nicht gut.
Jai

Antworten:


9

Erstellen Sie diese neue Methode und rufen Sie sie mit der Produkt-ID auf. Stellen Sie außerdem sicher, dass Sie nur 1 Bewertungsoption in admin aktiviert haben.

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

Ja, ich habe nur eine Bewertung von admin. Lassen Sie mich diesen Code ausprobieren
Ronak Chauhan

Vielen Dank :) Es funktioniert gut. Vielen, vielen Dank noch einmal
Ronak Chauhan

Wo soll dieser Code zum obigen Ergebnis hinzugefügt werden? Ich muss dasselbe tun.
Jai

@ Jai, Sie müssen diesen Code in eine beliebige benutzerdefinierte Modulblockdatei einfügen und diese Methode von einer beliebigen Stelle aus aufrufen. Gerne können Sie es von der Bewertungslistenseite Ihres Themas aufrufen.
Ashish Jagnani

Könnt ihr bitte damit ich dementsprechend folgen kann? Sie können hinzufügen, wie Sie in Ihrer Arbeit getan hatten. Veröffentlichen Sie den Code des von Ihnen erstellten Blocks und wie Sie ihn auf der Seite mit der Überprüfungsliste aufrufen.
Jai
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.