Magento – How to display custom attribute on product view page under description Magento2

magento2

I have tried couple of ways that are already mention on Stack, but none worked for me.

What i have done so far is here….

  1. First i have created attribute in the back-end and assigned it to
    default attribute set. attribute code is youtubevideo
  2. I put following piece of code in catalog_product_view.xml

    <block class="Magento\Catalog\Block\Product\View\Description" name="product.info.video" template="product/view/video.phtml" group="detailed_info">
    <arguments>
        <argument name="at_call" xsi:type="string">getYoutubevideo</argument>
        <argument name="at_code" xsi:type="string">youtubevideo</argument>
        <argument name="css_class" xsi:type="string">youtubevideo</argument>
        <argument name="at_label" xsi:type="string">none</argument>
        <argument name="title" translate="true" xsi:type="string">Video</argument>
    </arguments>
    

its not working with this way , the video.phtml file is copy of attribute.phtml file. which is present on the same path.

Its work if i change in xml video.phtml to attribute.phtml , But it shown on under tab. I don't want to show it in tab.

I'm working on Magento 2.0.9

What else way to shown it on product page somewhere else.

Any help would be appreciated Thanks

Best Answer

I have similar requirement to show some text attribute values on frontend on product view page after the short description.
I have modified catalog_product_view.xml and added my own template file in my custom theme.

app/design/frontend/ThemePackage/themename/Magento_Catalog/layout/catalog_product_view.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <container name="product.info.main" htmlTag="div" htmlClass="product-info-main product-shop col-md-7 col-sm-7 col-xs-12" after="product.info.media">
                <block class="Magento\Catalog\Block\Product\View\Description" name="product.info.measurements" template="product/view/customattribute.phtml" after="product.info.overview">
                    <arguments>
                        <argument name="at_call" xsi:type="string">getMeasurements</argument>
                        <argument name="at_code" xsi:type="string">measurements</argument>
                        <argument name="css_class" xsi:type="string">measurements</argument>
                        <argument name="at_label" xsi:type="string">measurements</argument>
                        <argument name="add_attribute" xsi:type="string">itemprop="measurements"</argument>
                    </arguments>
                </block>
            </container>
        </referenceContainer>
    </body>
</page>

app/design/frontend/ThemePackage/themename/Magento_Catalog/templates/product/view/customattribute.phtml

<?php
$_helper = $this->helper('Magento\Catalog\Helper\Output');
$_product = $block->getProduct();
$_code = $block->getAtCode();
$_className = $block->getCssClass();
$_attributeLabel = $block->getAtLabel();
$_attributeType = $block->getAtType();
$_attributeAddAttribute = $block->getAddAttribute();

if ($_attributeLabel && $_attributeLabel == 'default') {
    $_attributeLabel = $_product->getResource()->getAttribute($_code)->getFrontendLabel();
}
$_attributeValue =$_product->getResource()->getAttribute($_code)->getFrontend()->getValue($_product);
?>
<?php if ($_attributeValue) { ?>
    <div class="product attibute <?php echo $_className?>">
    <div class="value" <?php echo $_attributeAddAttribute;?>><?php echo $_attributeValue; ?></div>
</div>
<?php } ?>

I have taken reference from [http://www.mohannatarajan.com/magento/magento2-get-product-attribute-value][1]
Related Topic