vendor/ibexa/product-catalog/src/lib/Personalization/Event/Subscriber/PersonalizationProductVariantSubscriber.php line 24

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. declare(strict_types=1);
  7. namespace Ibexa\ProductCatalog\Personalization\Event\Subscriber;
  8. use Ibexa\Bundle\Personalization\Templating\Twig\Functions\UserTracking;
  9. use Ibexa\Personalization\Event\PersonalizationUserTrackingRenderOptionsEvent;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. final class PersonalizationProductVariantSubscriber implements EventSubscriberInterface
  12. {
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             PersonalizationUserTrackingRenderOptionsEvent::class => ['onUserTrackingRender'255],
  17.         ];
  18.     }
  19.     public function onUserTrackingRender(PersonalizationUserTrackingRenderOptionsEvent $event): void
  20.     {
  21.         $variantCode $event->getOptions()[UserTracking::VARIANT_CODE_KEY] ?? null;
  22.         if ($variantCode === null) {
  23.             return;
  24.         }
  25.         $event->setOption(UserTracking::CONTENT_ID_KEY$variantCode);
  26.     }
  27. }