Show notice when migration affects tracking settings

[MAILPOET-3185]
This commit is contained in:
Rostislav Wolny
2021-11-25 15:13:59 +01:00
committed by Veljko V
parent 432b2e6ff5
commit 7b69efea13
4 changed files with 64 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
<?php
namespace MailPoet\Util\Notices;
use MailPoet\Util\Helpers;
use MailPoet\WP\Functions as WPFunctions;
use MailPoet\WP\Notice;
class ChangedTrackingNotice {
const OPTION_NAME = 'mailpoet-changed-tracking-settings-notice';
/** @var WPFunctions */
private $wp;
public function __construct(
WPFunctions $wp
) {
$this->wp = $wp;
}
public function init($shouldDisplay) {
if ($shouldDisplay && $this->wp->getTransient(self::OPTION_NAME)) {
return $this->display();
}
return null;
}
public function display() {
$text = __('Email open and click tracking is now enabled. You can change how MailPoet tracks your subscribers in [link]Settings[/link]', 'mailpoet');
$text = Helpers::replaceLinkTags($text, 'admin.php?page=mailpoet-settings#advanced');
$extraClasses = 'mailpoet-dismissible-notice is-dismissible';
return Notice::displayWarning($text, $extraClasses, self::OPTION_NAME);
}
public function disable() {
$this->wp->deleteTransient(self::OPTION_NAME);
}
}

View File

@@ -39,6 +39,9 @@ class PermanentNotices {
/** @var EmailWithInvalidSegmentNotice */
private $emailWithInvalidListNotice;
/** @var ChangedTrackingNotice */
private $changedTrackingNotice;
public function __construct(
WPFunctions $wp,
TrackingConfig $trackingConfig,
@@ -54,6 +57,7 @@ class PermanentNotices {
$this->headersAlreadySentNotice = new HeadersAlreadySentNotice($settings, $trackingConfig, $wp);
$this->deprecatedShortcodeNotice = new DeprecatedShortcodeNotice($wp);
$this->emailWithInvalidListNotice = new EmailWithInvalidSegmentNotice($wp);
$this->changedTrackingNotice = new ChangedTrackingNotice($wp);
}
public function init() {
@@ -94,6 +98,9 @@ class PermanentNotices {
$this->emailWithInvalidListNotice->init(
Menu::isOnMailPoetAdminPage($exclude = null, $pageId = 'mailpoet-newsletters')
);
$this->changedTrackingNotice->init(
Menu::isOnMailPoetAdminPage($excludeWizard)
);
}
public function ajaxDismissNoticeHandler() {
@@ -120,6 +127,9 @@ class PermanentNotices {
case (EmailWithInvalidSegmentNotice::OPTION_NAME):
$this->emailWithInvalidListNotice->disable();
break;
case (ChangedTrackingNotice::OPTION_NAME):
$this->changedTrackingNotice->disable();
break;
}
}
}