Add a service for handling subscriber cookies

[MAILPOET-3924]
This commit is contained in:
Jan Jakes
2021-12-10 10:34:00 +01:00
committed by Veljko V
parent 191f09bbfd
commit 87da9d1b04
2 changed files with 38 additions and 0 deletions

View File

@@ -246,6 +246,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Router\Endpoints\Track::class)->setPublic(true);
$container->autowire(\MailPoet\Statistics\Track\Clicks::class);
$container->autowire(\MailPoet\Statistics\Track\Opens::class)->setPublic(true);
$container->autowire(\MailPoet\Statistics\Track\SubscriberCookie::class)->setPublic(true);
$container->autowire(\MailPoet\Statistics\Track\WooCommercePurchases::class);
$container->autowire(\MailPoet\Statistics\Track\Unsubscribes::class)->setPublic(true);
$container->autowire(\MailPoet\Statistics\StatisticsFormsRepository::class)->setPublic(true);

View File

@@ -0,0 +1,37 @@
<?php
namespace MailPoet\Statistics\Track;
use MailPoet\Util\Cookies;
class SubscriberCookie {
const COOKIE_NAME = 'mailpoet_abandoned_cart_tracking';
const COOKIE_EXPIRY = 10 * 365 * 24 * 60 * 60; // 10 years (~ no expiry)
/** @var Cookies */
private $cookies;
public function __construct(
Cookies $cookies
) {
$this->cookies = $cookies;
}
public function getSubscriberId(): ?int {
$data = $this->cookies->get(self::COOKIE_NAME);
return is_array($data) && $data['subscriber_id']
? (int)$data['subscriber_id']
: null;
}
public function setSubscriberId(int $subscriberId): void {
$this->cookies->set(
self::COOKIE_NAME,
['subscriber_id' => $subscriberId],
[
'expires' => time() + self::COOKIE_EXPIRY,
'path' => '/',
]
);
}
}