custom/plugins/NetsCheckout/src/Subscriber/OrderPlacedEventSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. namespace Nets\Checkout\Subscriber;
  3. use Shopware\Core\Checkout\Cart\Event\CheckoutOrderPlacedEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use  Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. class OrderPlacedEventSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var SessionInterface
  11.      */
  12.     private $session;
  13.     /**
  14.      * @var RequestStack
  15.      */
  16.     private $request;
  17.     public function __construct(SessionInterface $sessionRequestStack $request)
  18.     {
  19.         $this->session $session;
  20.         $this->request $request;
  21.     }
  22.     public static function getSubscribedEvents() : Array
  23.     {
  24.         return [
  25.             CheckoutOrderPlacedEvent::class => 'orderPlaced'
  26.         ];
  27.     }
  28.     public function orderPlaced(CheckoutOrderPlacedEvent $event) {
  29.         $paymentId null;
  30.         $orderId $event->getOrder()->getId();
  31.         $this->session->set("orderId"$orderId);
  32.         $currentRequest $this->request->getCurrentRequest();
  33.         if(!empty($currentRequest->get('paymentId'))) {
  34.             $paymentId $currentRequest->get('paymentId');
  35.         }elseif(!empty($currentRequest->get('paymentid'))) {
  36.             $paymentId $currentRequest->get('paymentid');
  37.         }elseif(!empty($this->session->get('nets_paymentId'))) {
  38.             $paymentId $this->session->get('nets_paymentId');
  39.         }
  40.         if($paymentId) {
  41.             $event->getOrder()->setCustomFields(['nets_payment_id' => $paymentId]);
  42.         }
  43.     }
  44. }