src/EventSubscriber/OrderEventsSubscriber.php line 38

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventSubscriber;
  4. use App\Entity\Vista\Order;
  5. use App\Event\OrderEvent;
  6. use App\Helper\UserHelper;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class OrderEventsSubscriber implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var UserHelper
  12.      */
  13.     protected $userHelper;
  14.     public function __construct(UserHelper $userHelper)
  15.     {
  16.         $this->userHelper $userHelper;
  17.     }
  18.     /**
  19.      * {@inheritDoc}
  20.      */
  21.     public static function getSubscribedEvents()
  22.     {
  23.         return [
  24.             OrderEvent::class => 'onPreFinish'
  25.         ];
  26.     }
  27.     /**
  28.      * Attach additional data on recharge
  29.      *
  30.      * @param OrderEvent $event
  31.      */
  32.     public function onPreFinish(OrderEvent $event)
  33.     {
  34.         $payable $event->getPayable();
  35.         if (!$payable instanceof Order) {
  36.             return;
  37.         }
  38.         $transaction $event->getTransaction();
  39.         if (!$transaction->getMemberId()) {
  40.             return;
  41.         }
  42.         $user $this->userHelper->requestUser($transaction->getMemberId());
  43.         if (!$user) {
  44.             return;
  45.         }
  46.         $requestData $event->getRequestData();
  47.         $requestData['CustomerEmail'] = $user->getEmail();
  48.         $requestData['CustomerName'] = trim($user->getFirstName() . ' ' $user->getLastName());
  49.         $requestData['OptionalMemberId'] = $user->getMemberId();
  50.         $event->setResult($requestData);
  51.     }
  52. }