custom/plugins/NxsDeliveryTimesDisplay/src/Subscriber/ProductSubscriber.php line 25

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Nxs\NxsDeliveryTimesDisplay\Subscriber;
  3. use Shopware\Core\Content\Product\ProductEntity;
  4. use Shopware\Core\System\SalesChannel\Entity\SalesChannelEntityLoadedEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. class ProductSubscriber implements EventSubscriberInterface
  7. {
  8.     /**
  9.      * @return array
  10.      */
  11.     public static function getSubscribedEvents(): array
  12.     {
  13.         return [
  14.             'sales_channel.product.loaded' => 'onProductLoaded'
  15.         ];
  16.     }
  17.     /**
  18.      * @param SalesChannelEntityLoadedEvent $event
  19.      */
  20.     public function onProductLoaded(SalesChannelEntityLoadedEvent $event): void
  21.     {
  22.         /** @var ProductEntity $product */
  23.         foreach ($event->getEntities() as $product){
  24.             $nxsAdditionalDeliveryTime = isset($product->getCustomFields()['nxs_additional_delivery_time']) ? $product->getCustomFields()['nxs_additional_delivery_time'] : null;
  25.             if (isset($nxsAdditionalDeliveryTime)){
  26.                 $event->getContext()->assign(['nxs_additional_delivery_time' => $nxsAdditionalDeliveryTime]);
  27.             }
  28.         }
  29.     }
  30. }