Magento2 – Can’t Get Customer Details in Observer

customerevent-observermagento-2.1

I am using observer for after customer save with following event customer_save_after_data_object

I am trying to get the customer id in observer with following script,

 public function execute(\Magento\Framework\Event\Observer $observer){
    //Do your stuff here!
    echo "<pre>";
    $event = $observer->getEvent();
    $customer = $event->getCustomer();
    print_r($customer);
    die('Observer Is called!');        
}

Here i can see die result but am't able to customer data

Best Answer

Because there is no object called customer, if we look into the CustomerRepository Model where the event is dispatched, passed data looks like this

$savedCustomer = $this->get($customer->getEmail(), $customer->getWebsiteId());
    $this->eventManager->dispatch(
        'customer_save_after_data_object',
        ['customer_data_object' => $savedCustomer, 'orig_customer_data_object' => $customer]
    );
return $savedCustomer;

So, instead of $observer->getCustomer(); you will have to $observer->getCustomerDataObject();.

Also, you can try to do it with classic events like customer_save_before and customer_save_after, where you can do it your way, with $observer->getCustomer();

Related Topic