जवाबों:
कस्टम विशेषताओं के लिए दूसरा तरीका: हम केवल getCustomAttribute () का उपयोग करके मान प्राप्त कर सकते हैं
if (null !== $product->getCustomAttribute('your_custom_attribute')) {
echo $product->getCustomAttribute('your_custom_attribute')->getValue();
}
Magento में सबसे अच्छा अभ्यास इसे xml के माध्यम से करना है।
एक मानक विशेषता प्राप्त करने के लिए आप catalog_product_view.xml
उदाहरण के लिए ऐसा कुछ करते हैं :
<referenceContainer name="product.info.main">
<block class="Magento\Catalog\Block\Product\View\Description" name="product.info.brand" template="product/view/attribute.phtml" before="-">
<arguments>
<argument name="at_call" xsi:type="string">getBrand</argument>
<argument name="at_code" xsi:type="string">brand</argument>
<argument name="css_class" xsi:type="string">brand</argument>
<argument name="at_label" xsi:type="string">none</argument>
<argument name="add_attribute" xsi:type="string">itemprop="brand"</argument>
</arguments>
</block>
</referenceContainer>
यह एक इनपुट विशेषता या textarea का मूल्य प्राप्त करेगा। यदि आपके पास ड्रॉपडाउन है, तो आपको टेक्स्ट प्रकार का उपयोग करना चाहिए, इसलिए इस लाइन को तर्कों की सूची में जोड़ें:
<argument name="at_type" xsi:type="string">text</argument>
एक विशेषता प्राप्त करने के लिए फाइल बनाने या किसी php कोड को लिखने की आवश्यकता नहीं है। इस तरह आप किसी भी विशेषता के लिए एक ही डिफ़ॉल्ट php कोड का उपयोग करेंगे और जरूरत पड़ने पर आपको इसे केवल एक बार बदलना होगा।
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$_product = $objectManager->get('Magento\Catalog\Model\Product')->load($product_id);
$_product->getData('attr_code');
आशा करता हूँ की ये काम करेगा
Phtml-files में दूसरा तरीका:
echo $this->helper('Magento\Catalog\Helper\Output')->productAttribute($block->getProduct(), $block->getProduct()->getDescription(), 'description')
जैसे की: vendor/magento/module-catalog/view/frontend/templates/product/view/description.phtml
कैटलॉग_प्रोडक्ट_व्यू.एक्सएमएल के अंदर एक ब्लॉक बनाना और अपने इच्छित कंटेनर के अंदर जोड़ना या इसके चारों ओर एक कंटेनर बनाना।
<!-- Get a attribute -->
<block class="Magento\Catalog\Block\Product\View\Description" name="product.attributes.Height" template="product/view/attribute.phtml" before="-">
<arguments>
<argument name="at_call" xsi:type="string">getHeight</argument>
<argument name="at_code" xsi:type="string">height</argument>
<argument name="css_class" xsi:type="string">height</argument>
<argument name="at_label" xsi:type="string">none</argument>
<argument name="add_attribute" xsi:type="string">itemprop="Height"</argument>
</arguments>
</block>