custom/plugins/OkeonlineKejeDeliveryAddress/src/Storefront/Subscriber/AddressListingCriteriaEventSubscriber.php line 22

Open in your IDE?
  1. <?php
  2. namespace Okeonline\KejeDeliveryAddress\Storefront\Subscriber;
  3. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
  4. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\MultiFilter;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\NotFilter;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\RangeFilter;
  7. use Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting;
  8. use Shopware\Storefront\Page\Address\Listing\AddressListingCriteriaEvent;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class AddressListingCriteriaEventSubscriber implements EventSubscriberInterface {
  11.     public static function getSubscribedEvents(): array
  12.     {
  13.         return [
  14.             AddressListingCriteriaEvent::class => 'hidePreviousAddedStorefrontAddresses'
  15.         ];
  16.     }
  17.     public function hidePreviousAddedStorefrontAddresses(AddressListingCriteriaEvent $event): void
  18.     {
  19.         $criteria $event->getCriteria();
  20.         $criteria->addAssociation('customerAddressSource');
  21.         $criteria->addFilter(
  22.             new MultiFilter(MultiFilter::CONNECTION_OR, [
  23.                 new NotFilter(NotFilter::CONNECTION_AND, [
  24.                     new EqualsFilter('customerAddressSource.source''storefront')
  25.                 ]),
  26.                 new MultiFilter(MultiFilter::CONNECTION_AND, [
  27.                     new RangeFilter('createdAt', [
  28.                         RangeFilter::GT => (new \DateTime())->modify('-24 hour')->format('Y-m-d H:i:s.v'),
  29.                         RangeFilter::LTE => (new \DateTime())->format('Y-m-d H:i:s.v')
  30.                     ]),
  31.                     new EqualsFilter('customerAddressSource.source''storefront')
  32.                 ])
  33.             ])
  34.         );
  35.         $criteria->addSorting(new FieldSorting('createdAt'FieldSorting::DESCENDING));
  36.     }
  37. }