Add service for cookies handling & encode them with JSON

[PREMIUM-121]
This commit is contained in:
Jan Jakeš
2019-06-20 15:51:44 +02:00
committed by M. Shull
parent 86fe698e31
commit 440ed0aa23
7 changed files with 107 additions and 45 deletions

View File

@ -5,6 +5,7 @@ use MailPoet\Models\StatisticsClicks;
use MailPoet\Newsletter\Shortcodes\Categories\Link;
use MailPoet\Newsletter\Shortcodes\Shortcodes;
use MailPoet\Settings\SettingsController;
use MailPoet\Util\Cookies;
use MailPoet\WP\Functions as WPFunctions;
if (!defined('ABSPATH')) exit;
@ -20,8 +21,12 @@ class Clicks {
/** @var SettingsController */
private $settings_controller;
public function __construct(SettingsController $settings_controller) {
/** @var Cookies */
private $cookies;
public function __construct(SettingsController $settings_controller, Cookies $cookies) {
$this->settings_controller = $settings_controller;
$this->cookies = $cookies;
}
/**
@ -57,27 +62,31 @@ class Clicks {
private function sendRevenueCookie(StatisticsClicks $clicks) {
if ($this->settings_controller->get('woocommerce.accept_cookie_revenue_tracking.enabled')) {
setcookie(
$this->cookies->set(
self::REVENUE_TRACKING_COOKIE_NAME,
serialize([
[
'statistics_clicks' => $clicks->id,
'created_at' => time(),
]),
time() + self::REVENUE_TRACKING_COOKIE_EXPIRY,
'/'
],
[
'expires' => time() + self::REVENUE_TRACKING_COOKIE_EXPIRY,
'path' => '/',
]
);
}
}
private function sendAbandonedCartCookie($subscriber) {
if ($this->settings_controller->get('woocommerce.accept_cookie_revenue_tracking.enabled')) {
setcookie(
$this->cookies->set(
self::ABANDONED_CART_COOKIE_NAME,
serialize([
[
'subscriber_id' => $subscriber->id,
]),
time() + self::ABANDONED_CART_COOKIE_EXPIRY,
'/'
],
[
'expires' => time() + self::ABANDONED_CART_COOKIE_EXPIRY,
'path' => '/',
]
);
}
}