custom/plugins/GrimmTheme/src/Storefront/Subscriber/OrderSubscriber.php line 34

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace GrimmTheme\Storefront\Subscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Shopware\Core\Framework\Struct\ArrayStruct;
  5. use Shopware\Core\Checkout\Cart\Event\CheckoutOrderPlacedEvent;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\RequestStack;
  8. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  9. class OrderSubscriber implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var RequestStack
  13.      */
  14.     private $requestStack;
  15.     private $orderRepository;
  16.     public function __construct(RequestStack $requestStackEntityRepositoryInterface $orderRepository) {
  17.         $this->requestStack $requestStack;
  18.         $this->orderRepository $orderRepository;
  19.     }
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         return [
  23.             CheckoutOrderPlacedEvent::class => 'onOrderPlaced'
  24.         ];
  25.     }
  26.    
  27.     public function onOrderPlaced(CheckoutOrderPlacedEvent $event)
  28.     {
  29.         $currentRequest $this->requestStack->getCurrentRequest();
  30.         $bestellreferenz $currentRequest->get("bestellreferenz");
  31.         $order $event->getOrder();
  32.         $id $order->getId();
  33.         $this->orderRepository->update([
  34.             ['id' => $id'customFields' => ['bestellreferenz' => $bestellreferenz] ]
  35.         ]
  36.             ,$event->getContext()
  37.         );
  38.         
  39.     }
  40. }