I am using Magento 2.1.7 with Porto theme, I recently updated theme and magento now in product information I am also seeing empty attributes that are unrelated to the current products as N/A . how can I hide them?
I saw people discussing here this in Magento 1. but it doesn't work for 2.0.
please help if you know how to do it. thanks
Magento ver. 2.1.7
Theme: Porto 2.5.0
Solved! Go to Solution.
Just override file into your theme,
app/code/{Packagename}/{themename}/Magento_Catalog/templates/product/view/attributes.phtml
Just keep line, <?php if($_data['value'] == 'N/A') continue;?> after <?php foreach ($_additional as $_data): ?> line,
Full code,
<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
// @codingStandardsIgnoreFile
/**
 * Product additional attributes template
 *
 * @var $block \Magento\Catalog\Block\Product\View\Attributes
 */
?>
<?php
    $_helper = $this->helper('Magento\Catalog\Helper\Output');
    $_product = $block->getProduct()
?>
<?php if ($_additional = $block->getAdditionalData()): ?>
    <div class="additional-attributes-wrapper table-wrapper">
        <table class="data table additional-attributes" id="product-attribute-specs-table">
            <caption class="table-caption"><?php /* @escapeNotVerified */ echo __('More Information') ?></caption>
            <tbody>
            <?php foreach ($_additional as $_data): ?>
                <?php if($_data['value'] == 'N/A') continue;?>
                <tr>
                    <th class="col label" scope="row"><?php echo $block->escapeHtml(__($_data['label'])) ?></th>
                    <td class="col data" data-th="<?php echo $block->escapeHtml(__($_data['label'])) ?>"><?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
    </div>
<?php endif;?>
Clear cache.
Check link, How to remove empty attributes “N/A” in Magento 2?
If Issue solved, click Kudos and Accept as Solution.
Just override file into your theme,
app/code/{Packagename}/{themename}/Magento_Catalog/templates/product/view/attributes.phtml
Just keep line, <?php if($_data['value'] == 'N/A') continue;?> after <?php foreach ($_additional as $_data): ?> line,
Full code,
<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
// @codingStandardsIgnoreFile
/**
 * Product additional attributes template
 *
 * @var $block \Magento\Catalog\Block\Product\View\Attributes
 */
?>
<?php
    $_helper = $this->helper('Magento\Catalog\Helper\Output');
    $_product = $block->getProduct()
?>
<?php if ($_additional = $block->getAdditionalData()): ?>
    <div class="additional-attributes-wrapper table-wrapper">
        <table class="data table additional-attributes" id="product-attribute-specs-table">
            <caption class="table-caption"><?php /* @escapeNotVerified */ echo __('More Information') ?></caption>
            <tbody>
            <?php foreach ($_additional as $_data): ?>
                <?php if($_data['value'] == 'N/A') continue;?>
                <tr>
                    <th class="col label" scope="row"><?php echo $block->escapeHtml(__($_data['label'])) ?></th>
                    <td class="col data" data-th="<?php echo $block->escapeHtml(__($_data['label'])) ?>"><?php /* @escapeNotVerified */ echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
    </div>
<?php endif;?>
Clear cache.
Check link, How to remove empty attributes “N/A” in Magento 2?
If Issue solved, click Kudos and Accept as Solution.
wow man you relived me from a disaster. it worked. thanks a lot! 

Not working for me 2.1.8 with custom theme with Blank as base. Can you please help ?
I changed N/A to 'Nee' then it is wroking on the Dutch site, but not in the English or German. What is value I have to put in to get it working for all languages ?
The files is in 2.1.8 located somewhere else:
vendor/magento/module-catalog/view/frontend/templates/product/view
I translate Nee to N/A with inline translation, problem solved.
Is this the same in version 1.9.3.4 also? If not what do I need to do?
Awesome. Was looking for that. In regards to different languages:
If you use
<?php if($_data['value'] == __('N/A')) continue;?>instead, it works language-independent, as well!
To support multiple languages, you may replace:
<?php if($_data['value'] == 'N/A') continue;?>
with:
<?php if(is_object($_data['value'])) continue; ?>
Update: I found out that this fix is not working on configurable products like it does on simples, so this is my current attributes.phtml after I fixed it (if it helps someone...):
<?php
    $_helper = $this->helper('Magento\Catalog\Helper\Output');
    $_product = $block->getProduct();
    $excludeAttr = [];
    $_additionalData = [];
    $attributes = $_product->getAttributes();
    foreach ($attributes as $attribute) {
        if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
            $value = $attribute->getFrontend()->getValue($_product);
            if ($attribute->getFrontendInput() == 'price' && is_string($value)) {
                $value = $this->priceCurrency->convertAndFormat($value);
            }
            if (is_string($value) && strlen($value)) {
                $_additionalData[$attribute->getAttributeCode()] = [
                    'label' => __($attribute->getStoreLabel()),
                    'value' => $value,
                    'code' => $attribute->getAttributeCode(),
                ];
            }
        }
    }
?>
<?php if ($_additionalData): ?>
    <div class="additional-attributes-wrapper table-wrapper">
        <table class="data table additional-attributes" id="product-attribute-specs-table">
            <caption class="table-caption"><?= /* @escapeNotVerified */ __('More Information') ?></caption>
            <tbody>
            <?php foreach ($_additionalData as $_data): ?>
                <?php if(is_object($_data['value'])) continue; ?>
                <tr>
                    <th class="col label" scope="row"><?= $block->escapeHtml(__($_data['label'])) ?></th>
                    <td class="col data" data-th="<?= $block->escapeHtml(__($_data['label'])) ?>"><?= /* @escapeNotVerified */ $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
    </div>
<?php endif;?>