【问题标题】:Saving a custom customer attribute in observer在观察者中保存自定义客户属性
【发布时间】:2017-03-24 08:59:58
【问题描述】:

我为客户注册创建了一个观察者。

在里面我有以下代码段。

public function customerRegistrationSuccess($observer)
{
        $customer = $observer->getEvent()->getCustomer();
        $deviceName="web";
     //log written
        $customer->setDevice_used($deviceName);
        $customer->save();
       //log written again
}

我有一个带有代码的安装文件:

<?php $installer = $this;
      $installer->startSetup();
      $this->addAttribute('customer', 'device_used', array(
'label'     => 'Device Used',
'visible'   => 1,
'input'     => 'text',
'type'      => 'varchar',
'required'  => 0,
"unique"    => 0,
'position'  => 120,
'sort_order'=> 80,

));
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'device_used');
  $attribute->setData('used_in_forms', array(
'adminhtml_customer',
'checkout_register',
'customer_account_create',
'customer_account_edit',
'adminhtml_checkout'
 ));    
            $attribute->setData('is_user_defined', 0);
 $attribute->save();

 $installer->endSetup();
 ?>

但是没有创建这样的属性。可能有什么问题?

提前致谢。

【问题讨论】:

    标签: magento magento-1.9 observers


    【解决方案1】:

    我认为您在 customerRegistrationSuccess 中设置的调用不正确。应该是

    $customer->setDeviceUsed($deviceName);
    

    你也可以使用

    $customer->setData('device_used',$deviceName);
    

    两者都实现相同的目标。

    如果这不起作用,您需要检查安装脚本是否正确运行。检查 core_resource 数据库表以查看您的模块是否有条目并从那里开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多