我在显示产品自定义属性时遇到问题。 我通过谷歌阅读了所有资源,但仍然没有成功。 问题是我必须在类别网格和列表视图上显示可配置产品的大小属性。 谷歌上的每个解决方案都建议像
$_product->getAttributeText('size')
但我最后只是一个字符串 - “S”或“M”而不是数组。 如何轻松获取属于特定可配置产品的所有可能尺寸的所有简单产品?
更新
在使用Joseph Mastey提出的解决方案后,我遇到了另一个问题。我设法显示给定属性的所有可能选项,但现在我只需要显示可以购买的这些选项。例如,如果T恤尺码L缺货或被禁用,则不应显示L选项。我该如何解决这个问题?
答案 0 :(得分:18)
在处理可配置产品时(或者您只处理一种类型产品的概念时,可配置属性),您可能正在使用getTypeInstance
。请参阅下文,我获取产品的可配置属性,然后找到适合大小的属性。如果需要,您还可以运行每个可配置属性。或者,如果size是唯一可配置的属性,则只需跳过if()
。
$attrs = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product);
foreach($attrs as $attr) {
if(0 == strcmp("size", $attr['attribute_code'])) {
$options = $attr['values'];
foreach($options as $option) {
print "{$option['store_label']}<br />";
}
}
}
希望有所帮助!谢谢,
乔