我试图将评论的状态approved
改为pending
用户在Magento 2的前端中发布评论的状态。
我采用了这种方法。创建前的插件,仅适用于前端区域,该方法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
赛事。目前这并不重要。