How to Disable Empty Category Programmatically using Root Script in Magento 2
<?php
use Magento\Framework\AppInterface;
try
{
require_once __DIR__ . '/app/bootstrap.php';
}
catch (\Exception $e)
{
echo 'Autoload error: ' . $e->getMessage();
exit(1);
}
try
{
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$appState = $objectManager->get('\Magento\Framework\App\State');
$appState->setAreaCode('frontend');
$Collectionfactory = $objectManager->get('\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$Categoryfactory = $objectManager->get('\Magento\Catalog\Model\CategoryFactory');
$Categorydisable=false;
$categories=$Collectionfactory->create()->addAttributeToSelect('*');
foreach ($categories as $category)
{
$products = $category->getProductsPosition();
if(empty($products))
{
$category = $Categoryfactory->create()->setStoreId(0)->load($category->getId());
$category->setIsActive(0);
$category->save();
$Categorydisable=true;
}
}
if($Categorydisable)
{
echo "Category disable successfull";
}
else
{
echo "Category disable failed!";
}
}
catch(\Exception $e)
{
echo "Error : ".$e->getMessage();
}
?>
Comments
Post a Comment