添加客户字段并在Magento 1.7中以自己的表单使用


Add Customer Field and use in own forms in Magento 1.7

我在模块中添加了新的客户字段 我的模块更新:

    $installer = $this;
$installer->startSetup();
$_attributeToAdd = [
    'recordtype'=>[
        'input'=>'select',
        'type'=>'varchar',
        'label'=>Mage::helper('company_partner')->__('String'),
        'visible'=>1,
        'required'=>1,
        'user_defined'=>1,
        'global'=>1,
        'visible_on_front'=>1,
        'source'=>'company_partner/entity_recordtype'
    ],
    'court'=>[
        'input'=>'text',
        'type'=>'varchar',
        'label'=>Mage::helper('company_partner')->__('String),
        'visible'=>1,
        'required'=>0,
        'user_defined'=>1
    ],
    'krs'=>[
        'input'=>'text',
        'type'=>'varchar',
        'label'=>Mage::helper('company_partner')->__('String'),
        'visible'=>1,
        'required'=>0,
        'user_defined'=>1
    ],
    ...other fields
];
    $_order=2200;
    foreach($_attributeToAdd as $_key=>$_value){
        if(isset($setup)){
            unset($setup);
        }
        if(isset($_oAttribute)){
            unset($_oAttribute);
        }
        $setup = Mage::getModel('customer/entity_setup', 'core_setup');
        $_entitytypeId = $setup->getEntityTypeId('customer');
        $_attributeTypeId = $setup->getDefaultAttributeSetId($_entitytypeId);
        $_attributeGroupId = $setup->getDefaultAttributeGroupId($_entitytypeId,$_attributeTypeId);
        $setup->addAttribute('customer',$_key,$_value);
        $setup->addAttributeToGroup($_entitytypeId,$_attributeTypeId,$_attributeGroupId,$_key,$_order);
        Mage::getSingleton('eav/config')->getAttribute('customer', $_key)->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register','unizeto_partner_account_edit','magestore_affiliateplus_account_edit'))->save();
        $_oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer',$_key);
        $_oAttribute->setData('used_in_forms',['adminhtml_customer']);
        $_oAttribute->save();
        $_order++;
    }
$installer->endSetup();

我也试过

$_oAttribute->setData('used_in_forms',['adminhtml_customer','company_module']);

我在管理面板(添加/编辑定制器)中看到此属性,但在我自己的模块中,我无法在表单/操作控制器中使用(在管理数据中看不到归档)。

我不知道为什么。

我的模块从其他非核心 magento 模块中覆盖表单和动作控制器。

您可以使用

此链接

以创建客户属性。这是安全的。