![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-sales/Observer/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Sales\Observer; use Magento\Customer\Api\Data\CustomerInterface; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; use Magento\Sales\Api\OrderRepositoryInterface; use Magento\Sales\Model\Order\CustomerAssignment; /** * Assign order to customer created after issuing guest order. */ class AssignOrderToCustomerObserver implements ObserverInterface { /** * @var OrderRepositoryInterface */ private $orderRepository; /** * @var CustomerAssignment */ private $assignmentService; /** * AssignOrderToCustomerObserver constructor. * * @param OrderRepositoryInterface $orderRepository * @param CustomerAssignment $assignmentService */ public function __construct( OrderRepositoryInterface $orderRepository, CustomerAssignment $assignmentService ) { $this->orderRepository = $orderRepository; $this->assignmentService = $assignmentService; } /** * @inheritdoc */ public function execute(Observer $observer) { $event = $observer->getEvent(); /** @var CustomerInterface $customer */ $customer = $event->getData('customer_data_object'); /** @var array $delegateData */ $delegateData = $event->getData('delegate_data'); if (array_key_exists('__sales_assign_order_id', $delegateData)) { $orderId = $delegateData['__sales_assign_order_id']; $order = $this->orderRepository->get($orderId); if (!$order->getCustomerId() && $customer->getId()) { $this->assignmentService->execute($order, $customer); } } } }