我是 Magento 的新手,我正在执行一项 cron 作业,该作业会在分配的日期之后删除特定类别中的产品。通过工作和 Stackoverflow 的帮助,我想出了以下代码:
require_once 'app/Mage.php';
Mage::app();
$date = Mage::getModel('core/date')->date('Y-m-d H:i:s');
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addfieldtofilter('news_to_date', array(array('to' => $date)));
foreach($collection as $product) {
$product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
$product->save();
}
这会检查实际日期并将其与产品日期进行比较。如果该日期已过,该产品将被禁用。我需要的是,代码不应禁用该产品,而是应删除该类别的产品(在本例中,类别是“销售”)
我希望你们能帮助我!
提前致谢!
您需要从产品中获取所有类别 ID,然后从类别 ids 数组中删除销售类别 ID,并将它们设置回产品。
例如,销售类别 ID 为 5。
foreach ($collection as $product) {
//Getting all category ids
$ids = $product->getCategoryIds();
//Searching array key with value 5 and removing from array
if (($key = array_search(5, $ids)) !== false) {
unset($ids[$key]);
$product->setCategoryIds($ids)
$product->save();
}
}
附:您可以使用 magento cron 作业功能,而不需要使用:
require_once 'app/Mage.php';
Mage::app();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)