Move cookie tracking permission check to subscriber cookie service

[MAILPOET-3924]
This commit is contained in:
Jan Jakes
2021-12-10 13:58:43 +01:00
committed by Veljko V
parent f9cd7901af
commit 4ef2d4ed94
4 changed files with 37 additions and 12 deletions

View File

@@ -107,7 +107,12 @@ class Clicks {
}
$this->statisticsClicksRepository->flush();
$this->sendRevenueCookie($statisticsClicks);
$this->sendSubscriberCookie($subscriber);
$subscriberId = $subscriber->getId();
if ($subscriberId) {
$this->subscriberCookie->setSubscriberId($subscriberId);
}
// track open event
$this->opens->track($data, $displayImage = false);
// Update engagement date
@@ -133,12 +138,6 @@ class Clicks {
}
}
private function sendSubscriberCookie($subscriber) {
if ($this->trackingConfig->isCookieTrackingEnabled()) {
$this->subscriberCookie->setSubscriberId($subscriber->getId());
}
}
public function processUrl(
string $url,
NewsletterEntity $newsletter,

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Statistics\Track;
use MailPoet\Settings\TrackingConfig;
use MailPoet\Util\Cookies;
class SubscriberCookie {
@@ -12,13 +13,22 @@ class SubscriberCookie {
/** @var Cookies */
private $cookies;
/** @var TrackingConfig */
private $trackingConfig;
public function __construct(
Cookies $cookies
Cookies $cookies,
TrackingConfig $trackingConfig
) {
$this->cookies = $cookies;
$this->trackingConfig = $trackingConfig;
}
public function getSubscriberId(): ?int {
if (!$this->trackingConfig->isCookieTrackingEnabled()) {
return null;
}
$subscriberId = $this->getSubscriberIdFromCookie(self::COOKIE_NAME);
if ($subscriberId) {
return $subscriberId;
@@ -34,6 +44,10 @@ class SubscriberCookie {
}
public function setSubscriberId(int $subscriberId): void {
if (!$this->trackingConfig->isCookieTrackingEnabled()) {
return;
}
$this->cookies->set(
self::COOKIE_NAME,
['subscriber_id' => $subscriberId],