Add a service for handling subscriber cookies
[MAILPOET-3924]
This commit is contained in:
@@ -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);
|
||||
|
37
lib/Statistics/Track/SubscriberCookie.php
Normal file
37
lib/Statistics/Track/SubscriberCookie.php
Normal 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' => '/',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user