Use TrackingConfig and new tracking settings property in PHP

[MAILPOET-3185]
This commit is contained in:
Rostislav Wolny
2021-11-24 16:20:16 +01:00
committed by Veljko V
parent fbe933eb12
commit 699266c920
31 changed files with 259 additions and 122 deletions

View File

@ -23,6 +23,7 @@ use MailPoet\Newsletter\Scheduler\PostNotificationScheduler;
use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\TrackingConfig;
use MailPoet\UnexpectedValueException;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
use MailPoet\Util\Security;
@ -75,6 +76,9 @@ class Newsletters extends APIEndpoint {
/** @var NewsletterUrl */
private $newsletterUrl;
/** @var TrackingConfig */
private $trackingConfig;
public function __construct(
Listing\Handler $listingHandler,
WPFunctions $wp,
@ -88,7 +92,8 @@ class Newsletters extends APIEndpoint {
SubscribersFeature $subscribersFeature,
SendPreviewController $sendPreviewController,
NewsletterSaveController $newsletterSaveController,
NewsletterUrl $newsletterUrl
NewsletterUrl $newsletterUrl,
TrackingConfig $trackingConfig
) {
$this->listingHandler = $listingHandler;
$this->wp = $wp;
@ -103,6 +108,7 @@ class Newsletters extends APIEndpoint {
$this->sendPreviewController = $sendPreviewController;
$this->newsletterSaveController = $newsletterSaveController;
$this->newsletterUrl = $newsletterUrl;
$this->trackingConfig = $trackingConfig;
}
public function get($data = []) {
@ -185,8 +191,7 @@ class Newsletters extends APIEndpoint {
}
}
$tracking = $this->settings->get('tracking');
$tracking_enabled = !empty($tracking['enabled']) && $tracking['enabled'] === "1";
$tracking_enabled = $this->trackingConfig->isEmailTrackingEnabled();
if (!$tracking_enabled && $newsletter->getType() === NewsletterEntity::TYPE_RE_ENGAGEMENT && $status === NewsletterEntity::STATUS_ACTIVE) {
return $this->errorResponse([
APIError::FORBIDDEN => __(

View File

@ -19,6 +19,7 @@ use MailPoet\Segments\SegmentsRepository;
use MailPoet\Services\AuthorizedEmailsController;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\TrackingConfig;
use MailPoet\Statistics\StatisticsOpensRepository;
use MailPoet\Subscribers\SubscribersCountsController;
use MailPoet\WooCommerce\TransactionalEmails;
@ -70,6 +71,9 @@ class Settings extends APIEndpoint {
/** @var NewslettersRepository */
private $newsletterRepository;
/** @var TrackingConfig */
private $trackingConfig;
public function __construct(
SettingsController $settings,
Bridge $bridge,
@ -83,7 +87,8 @@ class Settings extends APIEndpoint {
FormMessageController $messageController,
ServicesChecker $servicesChecker,
SegmentsRepository $segmentsRepository,
SubscribersCountsController $subscribersCountsController
SubscribersCountsController $subscribersCountsController,
TrackingConfig $trackingConfig
) {
$this->settings = $settings;
$this->bridge = $bridge;
@ -98,6 +103,7 @@ class Settings extends APIEndpoint {
$this->messageController = $messageController;
$this->segmentsRepository = $segmentsRepository;
$this->subscribersCountsController = $subscribersCountsController;
$this->trackingConfig = $trackingConfig;
}
public function get() {
@ -287,7 +293,7 @@ class Settings extends APIEndpoint {
* @throws \Exception
*/
public function updateReEngagementEmailStatus($newTracking): array {
if (!empty($newTracking['enabled']) && $newTracking['enabled'] === "1" ) {
if (!empty($newTracking['level']) && $this->trackingConfig->isEmailTrackingEnabled($newTracking['level'])) {
return $this->reactivateReEngagementEmails();
}
try {