How to Add Custom Field and Save Value in Product Attribute Add Form in magento2

 

Steps to Add Custom Field and Save Value in Product Attribute Add Form in Magento 2:

Step 1: First we need to create a “di.xml” file inside the etc folder


app\code\Vendor\Extension\etc\adminhtml


Now, add the code as follows


<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">

    <type name="Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front">

        <plugin name="extension_attribute_edit_form" type="Vendor\Extension\Plugin\Block\Adminhtml\Product\Attribute\Edit\Tab\Front" sortOrder="1"/>

    </type>

</config>

Step 2: In the next step, we will create the “Front.php” file inside the Plugin folder


app\code\Vendor\Extension\Plugin\Block\Adminhtml\Product\Attribute\Edit\Tab


Then append the below-mentioned code snippet


<?php

namespace Vendor\Extension\Plugin\Block\Adminhtml\Product\Attribute\Edit\Tab;

 

class Front

{

 

    protected $custom;

 

    public function __construct(

        \Magento\Config\Model\Config\Source\Yesno $custom

    ) {

        $this->custom = $custom;

    }

 

    public function aroundGetFormHtml(

        \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front $subject,

        \Closure $proceed

    )

    {

 

        $customSource = $this->custom->toOptionArray();

        $form = $subject->getForm();

        $fieldset = $form->getElement('front_fieldset');

        $fieldset->addField(

            'used_in_custom',

            'select',

            [

                'name' => 'used_in_custom',

                'label' => __('Used in Custom'),

                'title' => __('Used in Custom'),

                'values' => $customSource,

            ]

        );

        return $proceed();

    }

}

Step 3: Then we will create the “db_schema.xml” file inside the etc folder


app\code\Vendor\Extension\etc


Finally, add the following code


<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">

    <table name="catalog_eav_attribute" resource="default" engine="innodb" comment="Catalog EAV Attribute Table">

        <column xsi:type="smallint" name="used_in_custom" unsigned="true" nullable="false"

                identity="false" default="0" comment="Custom forms"/>

   </table>

</schema>

Comments

Popular posts from this blog

Add Admin User name and Action name in Order Comment Section through Action Performed from Sales Order Grid in Magento 2

How to Update Product Stock Programmatically in Magento 2

How to Set and Get Cookie in Magento 2