neben der Funktion, dass alle Varianten-Bewertungen beim Vater-Artikel angezeigt werden, würde ich diese gerne auch bei sämtlichen anderen Varianten anzeigen lassen. Ist das irgendwie möglich?
Hier eine ausführlichere Beschreibung meiner Idee. Folgendes Szenario
Ein Vaterartikel “X” hat vier Varianten “A”, “B”, “C” und “D”.
Ein Kunde bewertet Variante “C”.
Diese Bewertung wird nun bei “C” angezeigt und bei entsprechender Einstellung auch bei “X”.
Ich möchte jedoch, dass die Bewertung für “C” auch bei “A”, “B” und “D” angezeigt wird.
Das ist ein sehr guter Hinweis. Ich scheitere aktuell an der Problematik, dass ich die Varianten-IDs nicht abfragen kann, wenn sich der Nutzer bereits in einer Variante befindet.
Es geht ja um folgende Funktion:
public function getReviews()
Speziell war meine Idee diese Zeile abzuändern: $aAdd = $this->getVariantIds();
…und zwar so, dass hier halt immer die Varianten des Vaters abgerufen werden und nicht vom aktuellen Objekt, bei dem sich der Nutzer gerade befindet. Das ist bei mir gerade so der Knackpunkt. Hast du da vielleicht noch einen Hinweis für mich?
Wow… Hilfe zu so später Stunde! Was für eine super Community es funktioniert super und basierend auf deiner Lösung konnte ich sogar auch die Anzahl an Kundenmeinungen entsprechend für die Varianten anpassen. Die letzte Stelle an der ich hänge ist nun die Berechnung des Bewertungsdurchschnitts. Ich habe hierzu folgenden Code gefunden, habe jedoch leider keinen Ansatz, wie ich das entsprechend abändern muss:
/**
* Returns product rating average
*
* @param bool $blIncludeVariants - include variant ratings
*
* @return double
*/
public function getArticleRatingAverage($blIncludeVariants = false)
{
if (!$blIncludeVariants) {
return round($this->oxarticles__oxrating->value, 1);
} else {
$oRating = oxNew(\OxidEsales\Eshop\Application\Model\Rating::class);
return $oRating->getRatingAverage($this->getId(), 'oxarticle', $this->getVariantIds());
}
}