From 4bc7f3c2bc8e1360ef97833ebbd116d682a96bb8 Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Wed, 24 Nov 2021 11:26:50 +0100 Subject: [PATCH] Add service for distributing tracking configuration in the plugin We introduced new settings that enable set different levels (basic, partial, full) of user tracking. Each level enables different tracking options. This service should encapsulate the logic that determines what should be tracked on each level of the setting. [MAILPOET-3185] --- lib/DI/ContainerConfigurator.php | 1 + lib/Settings/TrackingConfig.php | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 lib/Settings/TrackingConfig.php diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index 6af763da79..57c9f394bb 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -313,6 +313,7 @@ class ContainerConfigurator implements IContainerConfigurator { // Settings $container->autowire(\MailPoet\Settings\SettingsController::class)->setPublic(true); $container->autowire(\MailPoet\Settings\SettingsRepository::class)->setPublic(true); + $container->autowire(\MailPoet\Settings\TrackingConfig::class)->setPublic(true); // User Flags $container->autowire(\MailPoet\Settings\UserFlagsController::class); $container->autowire(\MailPoet\Settings\UserFlagsRepository::class)->setPublic(true); diff --git a/lib/Settings/TrackingConfig.php b/lib/Settings/TrackingConfig.php new file mode 100644 index 0000000000..29fa307803 --- /dev/null +++ b/lib/Settings/TrackingConfig.php @@ -0,0 +1,26 @@ +settings = $settings; + } + + public function isEmailTrackingEnabled(): bool { + return in_array($this->settings->get('tracking.level', self::LEVEL_FULL), [self::LEVEL_PARTIAL, self::LEVEL_FULL], true); + } + + public function isCookieTrackingEnabled(): bool { + return $this->settings->get('tracking.level', self::LEVEL_FULL) === self::LEVEL_FULL; + } +}