namespace Magento\Catalog\Block\Product\View;
$_additional = $block->getAdditionalData();
foreach($_additional as $a)
{
echo $a['code'].' => '.$a['value']."<br/>";
}
/**
* $excludeAttr is optional array of attribute codes to
* exclude them from additional data array
*
* @param array $excludeAttr
* @return array
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function getAdditionalData(array $excludeAttr = [])
{
$data = [];
$product = $this->getProduct();
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {
if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
$value = $attribute->getFrontend()->getValue($product);
if ($value instanceof Phrase) {
$value = (string)$value;
} elseif ($attribute->getFrontendInput() == 'price' && is_string($value)) {
$value = $this->priceCurrency->convertAndFormat($value);
}
if (is_string($value) && strlen($value)) {
$data[$attribute->getAttributeCode()] = [
'label' => __($attribute->getStoreLabel()),
'value' => $value,
'code' => $attribute->getAttributeCode(),
];
}
}
}
return $data;
}