| Current Path : /var/www/clients/client3/web2/web/vendor/magento/module-catalog-rule/Plugin/Indexer/ |
| Current File : /var/www/clients/client3/web2/web/vendor/magento/module-catalog-rule/Plugin/Indexer/Category.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\CatalogRule\Plugin\Indexer;
use Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor;
class Category
{
/**
* @var ProductRuleProcessor
*/
protected $productRuleProcessor;
/**
* @param ProductRuleProcessor $productRuleProcessor
*/
public function __construct(
ProductRuleProcessor $productRuleProcessor
) {
$this->productRuleProcessor = $productRuleProcessor;
}
/**
* @param \Magento\Catalog\Model\Category $subject
* @param \Magento\Catalog\Model\Category $result
* @return \Magento\Catalog\Model\Category
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterSave(
\Magento\Catalog\Model\Category $subject,
\Magento\Catalog\Model\Category $result
) {
/** @var \Magento\Catalog\Model\Category $result */
$productIds = $result->getChangedProductIds();
if (!empty($productIds) && !$this->productRuleProcessor->isIndexerScheduled()) {
$this->productRuleProcessor->reindexList($productIds);
}
return $result;
}
/**
* @param \Magento\Catalog\Model\Category $subject
* @param \Magento\Catalog\Model\Category $result
* @return \Magento\Catalog\Model\Category
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterDelete(
\Magento\Catalog\Model\Category $subject,
\Magento\Catalog\Model\Category $result
) {
$this->productRuleProcessor->markIndexerAsInvalid();
return $result;
}
}