마 젠토 2 : 제품 페이지에 각 별에 대한 제품 등급, 평균 등급 및 5 별 등급의 % 표시


14

제품 페이지에 다음과 같이 등급을 표시하고 싶습니다.

여기에 이미지 설명을 입력하십시오

  1. 5/4/3/2/1 개의 별 등급을 선택한 사용자 수
  2. 별표로 표시되는 평균 등급
  3. 사용자의 비율이 5 성급 등급을 선택 함

이를 위해 사용자 정의 코드를 추가해야하므로 getReviewsSummaryHtml을 제안하지 마십시오 .


여기에 완전한 솔루션을 게시 할 수 있습니까? 나는 똑같이해야하지만 잘하지는 못합니다.
Jai

답변:


9

제품 ID를 사용하여이 새 메소드를 작성하고 호출하십시오. 또한 관리자에서 등급 옵션을 1 개만 활성화해야합니다.

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

예, 관리자의 단일 등급 만 활성화되어 있습니다. 이 코드를 시험해 봅시다
Ronak Chauhan

고마워요 :) 잘 작동합니다. 다시 한 번 감사드립니다
Ronak Chauhan

위의 결과에이 코드를 추가 할 위치는? 나는 똑같은 일을해야합니다.
Jai

@Jai,이 코드를 사용자 정의 모듈 블록 파일에 넣고 원하는 곳에서이 메소드를 호출해야합니다. 테마의 검토 목록 페이지에서 호출 할 수 있습니다.
Ashish Jagnani

그에 따라 따라 할 수 있습니까? 작업에서 수행 한 방법을 추가 할 수 있습니다. 작성한 블록 코드 및 호출 방법을 검토 목록 페이지에 게시하십시오.
Jai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.