Як отримати дані користувача за ID в Magento 2?

Як вам відомо, керування замовленнями в Magento 2 — це вкрай вимогливий процес. Він потребує особливої уваги до деталей та вміння швидко приймати рішення. Особливо, коли маємо справу з інформацією, пов'язаною з клієнтами. 

Так само, як отримання поточного користувача, вам варто знати як отримати інформацію про користувача за його ID. І це саме те, що ви навчитеся робити сьогодні. 

Існує кілька методів, які можна використати, тому ми розглянемо детально кожен із них. 

Отримайте дані користувача за ID через factory method

Одним із найпоширеніших методів є factory method. Тому описаний нижче код допоможе вам отримати інформацію про користувача за його ID:

<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerFactory = $objectManager->get('\Magento\Customer\Model\CustomerFactory')->create();

$customerId = 1;

$customer = $customerFactory->load($customerId);

print_r($customer->getData());

echo $customer->getEmail() . PHP_EOL;
echo $customer->getFirstname(). PHP_EOL;
echo $customer->getLastname(). PHP_EOL;

Отримайте дані користувача за ID через API repository

У нашому випадку можна також використати API repository. Вам просто знадобиться такий код:

    protected $customerRepository;
    public function __construct(
\Magento\Customer\Api\CustomerRepositoryInterface $customerRepository) {
$this->customerRepository = $customerRepository;
} public function getCustomerById($customerId)
{
return $this->customerRepository->getById($customerId);
}

Отримайте дані користувача за ID через object manager 

Зрештою, маємо ще метод object manager. Попри те, що він видаєтся найпростішим, під час його використання можуть виникнути певні труднощі. Однак код нижче допоможе отримати дані користувача за його ID:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerRepository = $objectManager->get(\Magento\Customer\Api\CustomerRepositoryInterface::class);
$customer = $customerRepository->getById(55);
echo $customer->getEmail() . PHP_EOL;
echo $customer->getFirstname(). PHP_EOL;
echo $customer->getLastname(). PHP_EOL;

Примітка: рекомендуємо уникати прямого використання методу object manager, оскільки він приховує справжні залежності класу.

Отож, у вас є кілька доступних варіантів. Просто оберіть той, з яким вам найзручніше працювати.

Однак на цьому не варто зупинятися. Також буде корисно дізнатися, як отримати продукт за ID у Magento 2. Таке вміння, безумовно, стане в нагоді під час роботи з Magento.