Czasami spotykamy sklep, który chce mieć wiele różnych atrybutów produktu, ale chcą tylko domyślnego zestawu atrybutów. Oznacza to, że każdy produkt będzie miał powiedzmy ponad 10 opcji, które czasami nie dotyczą niektórych produktów. Na przykład odzież może wymagać atrybutu rozmiaru, ale mebel nie. Ponieważ sklep używa tych samych zestawów atrybutów dla każdego produktu, pusty atrybut rozmiaru będzie wyglądał następująco:
Jest to oczywiście bardzo mylące dla klientów, dlatego lepszym rozwiązaniem byłoby ukrycie pustych wartości atrybutów. Można to zrobić za pomocą małego fragmentu kodu. Znajdź i otwórz attributes.phtml
plik. Ten plik można znaleźć tutaj:app/design/frontend/default/[theme name]/template/catalog/product/view/attribute.phtml
Otwórz plik i wyszukaj następujące linie:
<?php foreach ($_additional as $_data): ?>
<?php $_attribute = $_product->getResource()->getAttribute($_data['code']);
if (!is_null($_product->getData($_attribute->getAttributeCode())) && ((string)$_attribute->getFrontend()->getValue($_product) != '')) { ?>
<tr>
<th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
<td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
</tr>
<?php } ?>
<?php endforeach; ?>
Zastąp całą pętlę foreach następującymi wierszami kodu:
<?php foreach ($_additional as $_data): ?>
<?php $_attribute = $_product->getResource()->getAttribute($_data['code']);
if (!is_null($_product->getData($_attribute->getAttributeCode())) && ((string)$_attribute->getFrontend()->getValue($_product) != '')) { ?>
<tr>
<th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
<td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
</tr>
<?php } ?>
<?php endforeach; ?>
Otóż to! Puste atrybuty będą teraz ukryte na stronach produktów. Nie zapomnij odświeżyć pamięci podręcznej, aby zobaczyć zmiany.
Źródło : https://tejabhagavan.blogspot.in/2016/03/hide-magento-attributes-with-no-value-2.html