custom/plugins/NextagCheckout/src/Subscriber/LineItemAdded.php line 25

Open in your IDE?
  1. <?php
  2. namespace Nextag\Checkout\Subscriber;
  3. use Shopware\Core\Checkout\Cart\Event\BeforeLineItemAddedEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. class LineItemAdded implements EventSubscriberInterface
  7. {
  8.     private $requestStack;
  9.     public function __construct(RequestStack $requestStack)
  10.     {
  11.         $this->requestStack $requestStack;
  12.     }
  13.     public static function getSubscribedEvents()
  14.     {
  15.         return [
  16.             BeforeLineItemAddedEvent::class => 'onLineItemAdded'
  17.         ];
  18.     }
  19.     public function onLineItemAdded(BeforeLineItemAddedEvent $event)
  20.     {
  21.         $lineItem $event->getLineItem();
  22.         $lineItems $this->requestStack->getCurrentRequest()->get('lineItems');
  23.         if($lineItems === null) {
  24.             return;
  25.         }
  26.         foreach ($lineItems as $key =>  $item) {
  27.             if ($lineItem->getReferencedId() == $key && isset($item['customData'])) {
  28.                 $lineItem->setPayloadValue('customData'$item['customData']);                                
  29.             }
  30.         }
  31.     }
  32. }