ユーザーのレビューをMagento 2のフロントエンドに投稿したときではapproved
なく、レビューのステータスを作成しようとしています
。このアプローチを採用しました。このように見えるのメソッドのために、フロントエンド領域でのみ利用可能なbeforeプラグインを作成しますpending
setStatusId
Magento\Review\Model\Review
public function beforeSetStatusId(\Magento\Review\Model\Review $review, $status)
{
return [\Magento\Review\Model\Review::STATUS_APPROVED];
}
それは良い考えのように私に縫い合わせました。承認済みのステータスを返すので、問題なく機能するはずです。実際のメソッドは、これをパラメーターとして取得する必要があります。
驚いたことに、それはうまくいきませんでした。
それから私は掘り下げて、メソッドsetStatusId
がレビューモデルに存在しないことを発見しました。それは魔法のように呼ばれ、実際に実行されsetData('status_id', $status)
ます。
次に、生成されたインターセプターを調べましたが、実際にはsetStatusId
メソッドはありません。
magento 2でマジックゲッター/セッターをプラグインするにはどうすればよいですか?それは可能ですか?
注:レビューを自動承認するためのソリューションは必要ありません。私は、save_before
イベントのような他のアプローチを取ることができることを知っています。これは今のところ重要ではありません。