2015-04-04 68 views
6

我試圖檢查產品是否具有自定義選項或不是代碼(我的代碼運行sales_order_place_after事件)。 我嘗試下面的代碼,但它不返回任何東西。 $product->hasCustomOptions()$product->hasOptions()如何檢查產品有自定義選項?

請讓我知道我錯過了什麼。

+0

@Marius你在這裏http://stackoverflow.com回答類似的問題/ questions-25745879/product-has-a-custom-options-or-not-in-magento所以可能你可以幫我 – androidjunky 2015-04-04 10:22:21

回答

11

我遇到這個錯誤的次數比我關心的還要多。 $_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

3

使用方法

相關問題