如何检查产品有自定义选项?

问题描述:

我试图检查产品是否具有自定义选项或不是代码(我的代码运行sales_order_place_after事件)。 我尝试下面的代码,但它不返回任何东西。 $product->hasCustomOptions()$product->hasOptions()如何检查产品有自定义选项?

请让我知道我错过了什么。

+0

@Marius你在这里http://*.com回答类似的问题/ questions-25745879/product-has-a-custom-options-or-not-in-magento所以可能你可以帮我 – androidjunky 2015-04-04 10:22:21

我遇到这个错误的次数比我关心的还要多。 $_product->hasOptions()$_product->hasCustomOptions()总是返回false。我仍然不知道为什么会发生此错误。

无论如何,您可以通过执行以下操作来获得相同的结果。对于配置的产品:

<?php if ($_product->getData('has_options')): ?> 
    <!-- do something --> 
<?php endif; ?> 

而要得到简单的产品相同的结果自定义选项:

<?php if ($_product->getData('has_options') && ($_product->getTypeID() == 'simple')): ?> 
    <!-- do something --> 
<?php endif; ?> 

我希望帮助未来的探险家!


编辑


以上时平类别数据选项,在Magento启用循环中不能正常工作,我们不想重装里面的产品解决方案foreach循环!

相反,我们可以使用循环内的以下单检查定制选项:

$opts = Mage::getSingleton('catalog/product_option')->getProductOptionCollection($_product); 
$optsSize = $opts->getSize(); 

if ($optsSize) { 
    ... // go go go 
} 
+1

但是为什么$ _product-> hasOptions()将不起作用?,好像这是自然的要求做 – 2016-04-29 09:44:19

使用方法