custom/plugins/NwbNeo/src/Subscriber/LineItemSubscriber.php line 20

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Imnxx\Subscriber;
  4. use Shopware\Core\Checkout\Cart\Event\BeforeLineItemAddedEvent;
  5. use Shopware\Core\Framework\Struct\ArrayStruct;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class LineItemSubscriber implements EventSubscriberInterface
  8. {
  9.     public static function getSubscribedEvents(): array
  10.     {
  11.         return [
  12.             BeforeLineItemAddedEvent::class => 'onBeforeLineItemAdded',
  13.         ];
  14.     }
  15.     public function onBeforeLineItemAdded(BeforeLineItemAddedEvent $event): void
  16.     {
  17.         $cart $event->getCart();
  18.         $addedLineItem $event->getLineItem();
  19.         $lineItems $cart->getLineItems();
  20.         foreach ($lineItems as $lineItem) {
  21.             $payload $lineItem->getPayload();
  22.             $lastAdded $payload['lastAddedItem'] ?? null;
  23.             if (
  24.                 $lineItem->getId() !== $addedLineItem->getId() && $lastAdded === true
  25.             ) {
  26.                 $lineItem->removePayloadValue('lastAddedItem');
  27.             }
  28.         }
  29.         $addedLineItem->setPayloadValue('lastAddedItem'true);
  30.     }
  31. }