Tôi đã gặp lỗi này nhiều lần hơn số lần tôi quan tâm. Hoặc là $_product->hasOptions()
hoặc $_product->hasCustomOptions()
luôn trả về false
. Tôi vẫn không biết tại sao lỗi này xảy ra.
Dù sao, bạn có thể nhận được kết quả tương tự bằng cách thực hiện các thao tác sau. Đối với sản phẩm cấu hình:
<?php if ($_product->getData('has_options')): ?>
<!-- do something -->
<?php endif; ?>
Và để có được những kết quả tương tự cho sản phẩm đơn giản với các tùy chọn tùy chỉnh:
<?php if ($_product->getData('has_options') && ($_product->getTypeID() == 'simple')): ?>
<!-- do something -->
<?php endif; ?>
Tôi hy vọng rằng sẽ giúp một nhà thám hiểm trong tương lai!
EDIT
Các giải pháp trên không hoạt động trong vòng khi loại phẳng tùy chọn dữ liệu được kích hoạt trong Magento, và chúng tôi không muốn tải lại sản phẩm bên trong vòng lặp foreach !!
Thay vào đó, chúng ta có thể kiểm tra các tùy chọn tùy chỉnh bằng cách sử dụng singleton sau bên trong vòng lặp:
$opts = Mage::getSingleton('catalog/product_option')->getProductOptionCollection($_product);
$optsSize = $opts->getSize();
if ($optsSize) {
... // go go go
}
@Marius Bạn đã trả lời câu hỏi tương tự tại đây http://stackoverflow.com/questions/25745879/product-has-a-custom-options-or-not-in-magento Vì vậy, có thể bạn có thể giúp tôi – androidjunky