2016-11-10 2 views
0

고객 등록을 위해 옵저버를 만들었습니다.옵저버에 사용자 정의 고객 속성 저장

내부에는 다음과 같은 코드 세그먼트가 있습니다.

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(); 
?> 

을하지만, 그러한 속성이 만들어지지되고있다. 무엇이 잘못되었을 수 있습니까?

미리 감사드립니다.

답변

0

customerRegistrationSuccess에서 설정된 통화가 잘못되었다고 생각합니다. 그것은

$customer->setDeviceUsed($deviceName); 

는 다른 방법이

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

를 사용하여 모두 같은 일을 달성 할 수 있어야한다.

그래도 작동하지 않으면 설치 스크립트가 올바르게 실행되었는지 확인해야합니다. core_resource DB 테이블에서 모듈에 대한 항목이 있는지 확인하고 거기에서부터 이동하십시오.