1

当给定的 store_id 和 option_id 相同时,我想删除自定义选项。

目前磁电机有这个代码

foreach ($product->getOptions() as $option) 
{       

    $option->getValueInstance()->deleteValue($option->getId());
    $option->deletePrices($option->getId());
    $option->deleteTitles($option->getId());
    $option->delete();
}

我尝试使用此代码进行删除

foreach ($product->getOptions() as $option) 
{       
    $allStores = Mage::app()->getStores();
    foreach ($allStores as $_eachStoreId => $val)
    {
        if($_storeCode = Mage::app()->getStore($_eachStoreId)->getCode() == $importData['store'])
        {
                $option->getValueInstance()->deleteValue($option->getId());
                $option->deletePrices($option->getId());
                $option->deleteTitles($option->getId());
                    $option->delete();
            }
        }
}

但它会在相同时删除所有自定义选项option_id并且不检查store_id

所以请帮助我如何在特定的 store_id 和 option_id 删除自定义选项?

4

1 回答 1

1

我已经稍微改变了你的代码。它现在应该可以更快,更正常地工作。所以检查一下:

$allStores = Mage::app()->getStores(false,true);
foreach ($product->getOptions() as $option) 
{           
    foreach ($allStores as $_eachStoreCode => $val)
    {
        if(strcasecmp($_eachStoreCode,$importData['store']) == 0)
        {
                $option->getValueInstance()->deleteValue($option->getId());
                $option->deletePrices($option->getId());
                $option->deleteTitles($option->getId());
                    $option->delete();
            }
        }
}

看来此链接可能对您也有帮助。

于 2012-11-27T08:46:28.263 回答