custom/plugins/NewsletterSendinblue/src/Subscriber/MarketingAutomationSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. namespace NewsletterSendinblue\Subscriber;
  3. use NewsletterSendinblue\Service\ConfigService;
  4. use NewsletterSendinblue\Service\SIBCookieProviderService;
  5. use Shopware\Storefront\Event\StorefrontRenderEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class MarketingAutomationSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var ConfigService
  11.      */
  12.     private $configService;
  13.     /**
  14.      * MarketingAutomationSubscriber constructor.
  15.      *
  16.      * @param ConfigService $configService
  17.      */
  18.     public function __construct(ConfigService $configService)
  19.     {
  20.         $this->configService $configService;
  21.     }
  22.     /**
  23.      * @return array
  24.      */
  25.     public static function getSubscribedEvents(): array
  26.     {
  27.         return [
  28.             StorefrontRenderEvent::class => ['onStorefrontRenderEvent'1]
  29.         ];
  30.     }
  31.     /**
  32.      * @param StorefrontRenderEvent $event
  33.      */
  34.     public function onStorefrontRenderEvent(StorefrontRenderEvent $event): void
  35.     {
  36.         $salesChannelContext $event->getSalesChannelContext();
  37.         if (method_exists($salesChannelContext'getSalesChannelId')) {
  38.             $salesChannelId $salesChannelContext->getSalesChannelId();
  39.         } else {
  40.             $salesChannelId $salesChannelContext->getSalesChannel()->getId();
  41.         }
  42.         $this->configService->setSalesChannelId($salesChannelId);
  43.         $cookiesAllowed $event->getRequest()->cookies->get('cookie-preference')
  44.             && $event->getRequest()->cookies->get(SIBCookieProviderService::SIB_COOKIE_NAME);
  45.         $isPageTrackingEnabled $cookiesAllowed && $this->configService->isPageTrackingEnabled();
  46.         $event->setParameter('sendinblueIsPageTrackingEnabled'$isPageTrackingEnabled);
  47.         if ($isPageTrackingEnabled) {
  48.             $event->setParameter('sendinblueMAKey'$this->configService->getMAKey());
  49.             if ($customer $event->getSalesChannelContext()->getCustomer()) {
  50.                 $event->setParameter('sendinblueUserEmail'$customer->getEmail());
  51.             }
  52.         }
  53.     }
  54. }