zone1987

Shopware 6 - Strict Category Listing

Apr 19th, 2023
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.05 KB | None | 0 0
  1. <?php
  2. declare(strict_types=1);
  3.  
  4. namespace Foo\Bar\Subscriber;
  5.  
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Shopware\Core\Content\Product\Events\ProductListingCriteriaEvent;
  9.  
  10. /**
  11.  * @class FrontendSubscriber
  12.  * @package Foo\Bar\Subscriber
  13.  */
  14. class FrontendSubscriber implements EventSubscriberInterface
  15. {
  16.  
  17.     /**
  18.      * @return string[]
  19.      */
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         return [
  23.             ProductListingCriteriaEvent::class => 'onLoadProductListing'
  24.         ];
  25.     }
  26.  
  27.     /**
  28.      * @param ProductListingCriteriaEvent $event
  29.      * @return void
  30.      */
  31.     public function onLoadProductListing(ProductListingCriteriaEvent $event): void
  32.     {
  33.         $request = $event->getRequest();
  34.         $criteria = $event->getCriteria();
  35.  
  36.         $categoryId = $request->get('navigationId');
  37.  
  38.         $criteria->addFilter(
  39.             new EqualsFilter('categories.id', $categoryId)
  40.         );
  41.     }
  42. }
Add Comment
Please, Sign In to add comment