Napotkano ten błąd więcej razy, niż się liczy. Albo $_product->hasOptions()
lub $_product->hasCustomOptions()
zawsze zwraca false
. Nadal nie wiem, dlaczego ten błąd występuje.
W każdym razie możesz uzyskać ten sam wynik, wykonując następujące czynności. Dla konfigurowalnych produktów:
<?php if ($_product->getData('has_options')): ?>
<!-- do something -->
<?php endif; ?>
I aby uzyskać ten sam wynik dla prostych produktów z opcji niestandardowych:
<?php if ($_product->getData('has_options') && ($_product->getTypeID() == 'simple')): ?>
<!-- do something -->
<?php endif; ?>
Mam nadzieję, że pomaga przyszłej przygód!
EDIT
Rozwiązanie powyżej nie działa w pętli, gdy opcja dane kategoria mieszkanie jest włączona w Magento, i nie chcemy, aby przeładować produktu wewnątrz pętla foreach !!
Zamiast tego, możemy sprawdzić opcje niestandardowe stosując następujący singleton wewnątrz pętli:
$opts = Mage::getSingleton('catalog/product_option')->getProductOptionCollection($_product);
$optsSize = $opts->getSize();
if ($optsSize) {
... // go go go
}
@Marius pan odpowiedział na podobne pytanie tutaj http://stackoverflow.com/questions/25745879/product-has-a-custom-options-or-not-in-magento Może więc możesz mi pomóc – androidjunky