Ich versuche , den Status einer Überprüfung zu machen sein approvedstatt , pendingwenn die Benutzer Beiträge im Frontend in Magento 2.
Und ich diesen Ansatz nahmen. Erstellen Sie ein Vorher-Plugin, das nur im Frontend-Bereich verfügbar ist, für die Methode, setStatusIddie Magento\Review\Model\Reviewso aussieht
public function beforeSetStatusId(\Magento\Review\Model\Review $review, $status)
{
return [\Magento\Review\Model\Review::STATUS_APPROVED];
}
Es kam mir wie eine gute Idee vor. Und es sollte funktionieren, da ich den genehmigten Status zurückgebe. Die eigentliche Methode sollte dies dann als Parameter aufnehmen.
aber zu meiner Überraschung hat es nicht funktioniert.
Dann habe ich ausgegraben und festgestellt, dass die Methode setStatusIdim Überprüfungsmodell nicht vorhanden ist. Es heißt magisch und läuft tatsächlich setData('status_id', $status).
Ich habe mir dann den generierten Interceptor angesehen, und tatsächlich gibt es keine setStatusIdMethode.
Wie kann ich die Magic Getter / Setter in Magento 2 einbinden? Ist das überhaupt möglich?
Hinweis: Ich benötige keine Lösung, um die Bewertungen automatisch zu genehmigen. Ich weiß, dass ich andere Ansätze verfolgen kann, wie die save_beforeEreignisse. Dies ist vorerst nicht wichtig.