public aroundSave ( Magento\Catalog\Model\ResourceModel\Category $categoryResource, Closure $proceed, Magento\Framework\Model\AbstractModel $category ) : Magento\Catalog\Model\ResourceModel\Category | ||
$categoryResource | Magento\Catalog\Model\ResourceModel\Category | Category original resource model. |
$proceed | Closure | Original save method. |
$category | Magento\Framework\Model\AbstractModel | Saved category. |
return | Magento\Catalog\Model\ResourceModel\Category |
public function aroundSave(\Magento\Catalog\Model\ResourceModel\Category $categoryResource, \Closure $proceed, \Magento\Framework\Model\AbstractModel $category)
{
if ($category->getId() && $category->getSortedProducts()) {
$this->unserializeProductPositions($category);
if ($category->getIsVirtualCategory()) {
$category->setPostedProducts([]);
}
$categoryResource->addCommitCallback(function () use($category) {
$affectedProductIds = $this->getAffectedProductIds($category);
$category->setAffectedProductIds($affectedProductIds);
$this->saveHandler->saveProductPositions($category);
});
}
return $proceed($category);
}