Magento 2: mostre classificações de produtos para cada estrela, classificações médias e% de 5 estrelas na página do produto


14

Quero exibir classificações na página do produto desta forma:

insira a descrição da imagem aqui

  1. Quantos usuários selecionaram classificações de 5/4/3/2/1 estrelas
  2. A classificação média, exibida como estrelas
  3. Porcentagem de usuários selecionados uma classificação de 5 estrelas

Preciso adicionar um código personalizado para isso. Por isso, não sugiro getReviewsSummaryHtml .


Você pode postar sua solução completa aqui? Eu preciso fazer o mesmo, mas não é bom em fazê-lo.
Jai

Respostas:


9

Crie e chame esse novo método com o ID do produto. Verifique também se você tem apenas 1 opção de classificação ativada no administrador.

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

Sim, tenho apenas uma classificação ativa do administrador. então deixe-me tentar este código
Ronak Chauhan

Muito obrigado :) Está funcionando bem. Muito obrigado novamente
Ronak Chauhan

Onde adicionar esse código ao resultado acima? Eu preciso fazer a mesma coisa.
Jai

@Jai, você precisa colocar esse código em qualquer arquivo de bloco de módulo personalizado e chamar esse método de onde quiser. Como você pode chamá-lo na página da lista de revisão do seu tema.
Ashish Jagnani

Você pode, por favor, para que eu possa seguir em conformidade? Você pode adicionar como você fez em seu trabalho. Poste o código do bloco que você criou e como você chama na página da lista de revisão.
Jai
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.