Видимость атрибута устанавливается для глобального представления или представления магазина, поэтому это не должно быть возможным. Однако, когда вы отображаете свой атрибут, например, на странице просмотра продукта, вы можете встроить некоторую логику, чтобы решить, должен ли он отображаться или нет.
Раствор 1
Вот пример, который я использовал аналогичным образом в phtml при просмотре продукта:
<?php
$product = $block->getProduct();
$attribute = $product->getResource()->getAttribute('attribute_code')->getFrontend()->getLabel($product);
if('>>your_condition_here<<'){
echo $_attribute;
}
?>
Вы можете использовать это где угодно, особенно за пределами вкладки сведений.
Решение 2
Другим способом было бы расширить вкладку сведений по умолчанию и встроить ваше состояние. Скопируйте vendor / magento / module-catalog / Block / Product / View / Attributes.php в свой модуль или тему и добавьте первое условие if (строка 83) * в getAddtionalData()
в соответствии с вашими потребностями.
Изменение
if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr))
К
if (($attribute->getIsVisibleOnFront() || ($attribute->getAttributeCode() == 'information' && '>>>your condition here <<<')) && !in_array($attribute->getAttributeCode(), $excludeAttr))
* Я должен добавить, что это работает для M2 2.2.x. Я не знаю о 2,3