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]
This commit is contained in:
committed by
Veljko V
parent
590652c471
commit
4bc7f3c2bc
@@ -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);
|
||||
|
26
lib/Settings/TrackingConfig.php
Normal file
26
lib/Settings/TrackingConfig.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace MailPoet\Settings;
|
||||
|
||||
class TrackingConfig {
|
||||
const LEVEL_FULL = 'full';
|
||||
const LEVEL_PARTIAL = 'partial';
|
||||
const LEVEL_BASIC = 'basic';
|
||||
|
||||
/** @var SettingsController */
|
||||
private $settings;
|
||||
|
||||
public function __construct(
|
||||
SettingsController $settings
|
||||
) {
|
||||
$this->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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user