Magento Enterprise 2.2.0 में adminhtml ग्राहक खाता फ़ॉर्म में नहीं दिखा रहा ग्राहक गुण


11

मैंने मॉड्यूल "Wgac_Subscription" बनाया है। मैं कस्टम ग्राहक विशेषता बनाना चाहता हूं। इसे नीचे दी गई छवि के अनुसार व्यवस्थापक में सूचीबद्ध किया गया है, लेकिन ग्राहक व्यवस्थापक स्वरूप में नहीं दिखाया गया है।

Wgac / सदस्यता / सेटअप / InstallData.php

<?php
namespace Wgac\Subscription\Setup;

use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Customer\Model\Customer;
use Magento\Customer\Setup\CustomerSetupFactory;
use Magento\Eav\Model\Entity\Attribute\Set as AttributeSet;
use Magento\Eav\Model\Entity\Attribute\SetFactory as AttributeSetFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;

class InstallData implements InstallDataInterface
{
    private $eavSetupFactory;

    /**
     * @var CustomerSetupFactory
     */
    protected $customerSetupFactory;

    /**
     * @var AttributeSetFactory
     */
    private $attributeSetFactory;



    public function __construct(
        EavSetupFactory $eavSetupFactory,
        CustomerSetupFactory $customerSetupFactory,
        AttributeSetFactory $attributeSetFactory
    )
    {
        $this->eavSetupFactory = $eavSetupFactory;
        $this->customerSetupFactory = $customerSetupFactory;
        $this->attributeSetFactory = $attributeSetFactory;

    }

    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
    /*
        **
        * Create  Customer Attribute "customer_chargify_id"
        ** ==== START ====
        */

         /** @var CustomerSetup $customerSetup */
        $customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);

        $customerEntity = $customerSetup->getEavConfig()->getEntityType('customer');
        $attributeSetId = $customerEntity->getDefaultAttributeSetId();

        /** @var $attributeSet AttributeSet */
        $attributeSet = $this->attributeSetFactory->create();
        $attributeGroupId = $attributeSet->getDefaultGroupId($attributeSetId);

        $customerSetup->addAttribute(Customer::ENTITY, 'customer_chargify_id', [
            'type' => 'varchar',
            'label' => 'Customer Chargify Id',
            'input' => 'text',
            'required' => false,
            'visible' => true,
            "unique"  => true,
            'user_defined' => true,
            'position' =>999,
            'system' => 0,
        ]);

        $attribute = $customerSetup->getEavConfig()->getAttribute(Customer::ENTITY, 'customer_chargify_id')
        ->addData([
            'attribute_set_id' => $attributeSetId,
            'attribute_group_id' => $attributeGroupId,
            'used_in_forms' => ['adminhtml_customer'],//you can use other forms also ['adminhtml_customer_address', 'customer_address_edit', 'customer_register_address']
        ]);

        $attribute->save();

        /*        
        *   === END ===       
        */



    }
}

Wgac / सदस्यता / देखें / आधार / ui_component / customer_form.xml

<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_con
figuration.xsd">
    <fieldset name="customer">
        <field name="customer_chargify_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement"
                    xsi:type="string">input</item>
                    <item name="source"
                    xsi:type="string">customer</item>
                </item>
            </argument>
        </field>
    </fieldset>
</form>

यहाँ छवि विवरण दर्ज करें

अगर मुझे कुछ याद आ रहा है तो कृपया मुझे सुझाव दें।


1
मेरे साथ भी वही दिक्कत है। मैं यह पता नहीं लगा सकता कि यह क्या कारण है। क्या आप इसे हल करने में सक्षम हैं और व्यवस्थापक में ग्राहक खाते पर विशेषता प्रदर्शित करते हैं?
रादु

1
magento.stackexchange.com/questions/231216/… ने मेरे लिए इसे हल किया!
रादु

जवाबों:


4

'Used_in_forms' का मान ['adminhtml_customer', 'customer_account_edit'] होना चाहिए । यदि आप ग्राहक के लिए यह विशेषता नहीं दिखाना चाहते हैं, तो आपको दृश्यमान = गलत सेट करना चाहिए । आप अपने InstallData को नीचे की तरह अपडेट कर सकते हैं:

$customerSetup->removeAttribute(Customer::ENTITY, 'customer_chargify_id');
$customerSetup->addAttribute(Customer::ENTITY, 'customer_chargify_id', [
            'type' => 'varchar',
            'label' => 'Customer Chargify Id',
            'input' => 'text',
            'required' => false,
            'visible' => false,
            "unique" => true,
            'user_defined' => true,
            'position' => 999,
            'system' => 0,
        ]);

        $attribute = $customerSetup->getEavConfig()->getAttribute(Customer::ENTITY, 'customer_chargify_id')
            ->addData([
                'attribute_set_id' => $attributeSetId,
                'attribute_group_id' => $attributeGroupId,
                'used_in_forms' => ['adminhtml_customer', 'customer_account_edit'],
            ]);

और सुनिश्चित करें कि आपने YourVendor_YourModule को setup_module तालिका में हटा दिया है, यदि आप InstallData स्क्रिप्ट को फिर से चलाना चाहते हैं

आशा है कि यह आपकी मदद करेगा

सादर


1
एक सुधार: प्रवेश के लिए दृश्यमान नहीं बल्कि विशेषता के लिए, आपको customer_eav_attribute.is_visible=1( visibleसत्य) की आवश्यकता है, लेकिन eav_attribute.is_user_defined=0( user_definedअसत्य)।
बजे रयान होर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.