custom/plugins/Newsletter2GoSW6/src/Subscriber/ConversionTracking.php line 34

Open in your IDE?
  1. <?php
  2. namespace Newsletter2go\Subscriber;
  3. use Newsletter2go\Entity\Newsletter2goConfig;
  4. use Newsletter2go\Service\CookieProviderService;
  5. use Newsletter2go\Service\Newsletter2goConfigService;
  6. use Shopware\Storefront\Page\Checkout\Finish\CheckoutFinishPageLoadedEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class ConversionTracking implements EventSubscriberInterface
  9. {
  10.     private $configService;
  11.     /**
  12.      * ConversionTracking constructor.
  13.      * @param Newsletter2goConfigService $configService
  14.      */
  15.     public function __construct(Newsletter2goConfigService $configService)
  16.     {
  17.         $this->configService $configService;
  18.     }
  19.     public static function getSubscribedEvents(): array
  20.     {
  21.         return [
  22.             CheckoutFinishPageLoadedEvent::class => ['onCheckoutFinishPageLoaded'1]
  23.         ];
  24.     }
  25.     public function onCheckoutFinishPageLoaded(CheckoutFinishPageLoadedEvent $event)
  26.     {
  27.         $assignments = ['conversionTracking' => false];
  28.         try {
  29.             $isCookieAllowed $event->getRequest()->cookies->get('cookie-preference')
  30.                 && $event->getRequest()->cookies->get(CookieProviderService::COOKIE_KEY);
  31.             $configFields = [
  32.                 Newsletter2goConfig::NAME_VALUE_CONVERSION_TRACKING,
  33.                 Newsletter2goConfig::NAME_VALUE_COMPANY_ID
  34.             ];
  35.             $result $this->configService->getConfigByFieldNames($configFields);
  36.             if ($isCookieAllowed && !empty($result) && count($result) === count($configFields)) {
  37.                 /** @var Newsletter2goConfig $newsletter2goConfig */
  38.                 foreach ($result as $newsletter2goConfig) {
  39.                     //check if conversion tracking is activated
  40.                     if ($newsletter2goConfig->getName() === Newsletter2goConfig::NAME_VALUE_CONVERSION_TRACKING && $newsletter2goConfig->getValue() === 'true') {
  41.                         $assignments['conversionTracking'] = true;
  42.                     } elseif ($newsletter2goConfig->getName() === Newsletter2goConfig::NAME_VALUE_COMPANY_ID) {
  43.                         $assignments['companyId'] = $newsletter2goConfig->getValue();
  44.                     }
  45.                 }
  46.             }
  47.         } catch (\Exception $exception) {
  48.         }
  49.         $event->getPage()->assign($assignments);
  50.     }
  51. }