Update Sender Domain inline notice
Remove unused notices displayed before enforcement date. [MAILPOET-5844]
This commit is contained in:
committed by
Aschepikov
parent
01afa2ef31
commit
1e373ab7e0
@ -8,8 +8,8 @@ import { SenderActions } from './sender-domain-notice-actions';
|
|||||||
|
|
||||||
export type SenderRestrictionsType = {
|
export type SenderRestrictionsType = {
|
||||||
lowerLimit: number;
|
lowerLimit: number;
|
||||||
isNewUser: boolean;
|
isAuthorizedDomainRequiredForNewCampaigns?: boolean;
|
||||||
isEnforcementOfNewRestrictionsInEffect: boolean;
|
campaignTypes?: string[];
|
||||||
alwaysRewrite?: boolean;
|
alwaysRewrite?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -56,20 +56,12 @@ function SenderDomainInlineNotice({
|
|||||||
|
|
||||||
const LOWER_LIMIT = senderRestrictions?.lowerLimit || 500;
|
const LOWER_LIMIT = senderRestrictions?.lowerLimit || 500;
|
||||||
|
|
||||||
const isNewUser = senderRestrictions?.isNewUser ?? true;
|
|
||||||
const isEnforcementOfNewRestrictionsInEffect =
|
|
||||||
senderRestrictions?.isEnforcementOfNewRestrictionsInEffect ?? true;
|
|
||||||
// TODO: Remove after the enforcement date has passed
|
|
||||||
const onlyShowWarnings =
|
|
||||||
!isNewUser && !isEnforcementOfNewRestrictionsInEffect;
|
|
||||||
|
|
||||||
const isSmallSender = subscribersCount <= LOWER_LIMIT;
|
const isSmallSender = subscribersCount <= LOWER_LIMIT;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
isSmallSender ||
|
isSmallSender ||
|
||||||
isPartiallyVerifiedDomain ||
|
isPartiallyVerifiedDomain ||
|
||||||
senderRestrictions.alwaysRewrite ||
|
senderRestrictions.alwaysRewrite
|
||||||
onlyShowWarnings
|
|
||||||
) {
|
) {
|
||||||
isAlert = false;
|
isAlert = false;
|
||||||
}
|
}
|
||||||
@ -103,7 +95,6 @@ function SenderDomainInlineNotice({
|
|||||||
isFreeDomain={isFreeDomain}
|
isFreeDomain={isFreeDomain}
|
||||||
isPartiallyVerifiedDomain={isPartiallyVerifiedDomain}
|
isPartiallyVerifiedDomain={isPartiallyVerifiedDomain}
|
||||||
isSmallSender={isSmallSender}
|
isSmallSender={isSmallSender}
|
||||||
onlyShowWarnings={onlyShowWarnings}
|
|
||||||
/>
|
/>
|
||||||
</InlineNotice>
|
</InlineNotice>
|
||||||
);
|
);
|
||||||
|
@ -7,14 +7,12 @@ function SenderDomainNoticeBody({
|
|||||||
isFreeDomain,
|
isFreeDomain,
|
||||||
isPartiallyVerifiedDomain,
|
isPartiallyVerifiedDomain,
|
||||||
isSmallSender,
|
isSmallSender,
|
||||||
onlyShowWarnings = false,
|
|
||||||
alwaysRewrite = false,
|
alwaysRewrite = false,
|
||||||
}: {
|
}: {
|
||||||
emailAddressDomain: string;
|
emailAddressDomain: string;
|
||||||
isFreeDomain: boolean;
|
isFreeDomain: boolean;
|
||||||
isPartiallyVerifiedDomain: boolean;
|
isPartiallyVerifiedDomain: boolean;
|
||||||
isSmallSender: boolean;
|
isSmallSender: boolean;
|
||||||
onlyShowWarnings?: boolean;
|
|
||||||
alwaysRewrite?: boolean;
|
alwaysRewrite?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const renderMessage = (messageKey: string) => {
|
const renderMessage = (messageKey: string) => {
|
||||||
@ -27,11 +25,6 @@ function SenderDomainNoticeBody({
|
|||||||
"MailPoet cannot send email campaigns from shared 3rd-party domains like <emailDomain/>. Please send from your site's branded domain instead.",
|
"MailPoet cannot send email campaigns from shared 3rd-party domains like <emailDomain/>. Please send from your site's branded domain instead.",
|
||||||
'mailpoet',
|
'mailpoet',
|
||||||
),
|
),
|
||||||
// TODO: Remove freeWarning after the enforcement date has passed
|
|
||||||
freeWarning: __(
|
|
||||||
"Starting on February 1st, 2024, MailPoet will no longer be able to send from email addresses on shared 3rd party domains like <emailDomain/>. Please send from your site's branded domain instead.",
|
|
||||||
'mailpoet',
|
|
||||||
),
|
|
||||||
partiallyVerified: __(
|
partiallyVerified: __(
|
||||||
'Update your domain settings to improve email deliverability and meet new sending requirements.',
|
'Update your domain settings to improve email deliverability and meet new sending requirements.',
|
||||||
'mailpoet',
|
'mailpoet',
|
||||||
@ -48,22 +41,11 @@ function SenderDomainNoticeBody({
|
|||||||
|
|
||||||
const defaultMessage = messages[messageKey] || messages.default;
|
const defaultMessage = messages[messageKey] || messages.default;
|
||||||
|
|
||||||
return createInterpolateElement(__(defaultMessage, 'mailpoet'), {
|
return createInterpolateElement(defaultMessage, {
|
||||||
emailDomain: <strong>{escapeHTML(emailAddressDomain)}</strong>,
|
emailDomain: <strong>{escapeHTML(emailAddressDomain)}</strong>,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: Remove after the enforcement date has passed
|
|
||||||
if (onlyShowWarnings) {
|
|
||||||
if (isFreeDomain) {
|
|
||||||
return renderMessage(isSmallSender ? 'freeSmall' : 'freeWarning');
|
|
||||||
}
|
|
||||||
if (isPartiallyVerifiedDomain) {
|
|
||||||
return renderMessage('partiallyVerified');
|
|
||||||
}
|
|
||||||
return renderMessage('smallSender');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isFreeDomain) {
|
if (isFreeDomain) {
|
||||||
return renderMessage(isSmallSender || alwaysRewrite ? 'freeSmall' : 'free');
|
return renderMessage(isSmallSender || alwaysRewrite ? 'freeSmall' : 'free');
|
||||||
}
|
}
|
||||||
|
3
mailpoet/assets/js/src/global.d.ts
vendored
3
mailpoet/assets/js/src/global.d.ts
vendored
@ -155,9 +155,6 @@ interface Window {
|
|||||||
mailpoet_partially_verified_sender_domains?: string[];
|
mailpoet_partially_verified_sender_domains?: string[];
|
||||||
mailpoet_sender_restrictions?: {
|
mailpoet_sender_restrictions?: {
|
||||||
lowerLimit: number;
|
lowerLimit: number;
|
||||||
upperLimit: number;
|
|
||||||
isNewUser: boolean;
|
|
||||||
isEnforcementOfNewRestrictionsInEffect: boolean;
|
|
||||||
isAuthorizedDomainRequiredForNewCampaigns?: boolean;
|
isAuthorizedDomainRequiredForNewCampaigns?: boolean;
|
||||||
campaignTypes?: string[];
|
campaignTypes?: string[];
|
||||||
};
|
};
|
||||||
|
@ -152,9 +152,6 @@ class Newsletters {
|
|||||||
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
||||||
$data['sender_restrictions'] = [
|
$data['sender_restrictions'] = [
|
||||||
'lowerLimit' => AuthorizedSenderDomainController::LOWER_LIMIT,
|
'lowerLimit' => AuthorizedSenderDomainController::LOWER_LIMIT,
|
||||||
'upperLimit' => AuthorizedSenderDomainController::UPPER_LIMIT,
|
|
||||||
'isNewUser' => $this->senderDomainController->isNewUser(),
|
|
||||||
'isEnforcementOfNewRestrictionsInEffect' => $this->senderDomainController->isEnforcementOfNewRestrictionsInEffect(),
|
|
||||||
'isAuthorizedDomainRequiredForNewCampaigns' => $this->senderDomainController->isAuthorizedDomainRequiredForNewCampaigns(),
|
'isAuthorizedDomainRequiredForNewCampaigns' => $this->senderDomainController->isAuthorizedDomainRequiredForNewCampaigns(),
|
||||||
'campaignTypes' => NewsletterEntity::CAMPAIGN_TYPES,
|
'campaignTypes' => NewsletterEntity::CAMPAIGN_TYPES,
|
||||||
];
|
];
|
||||||
|
@ -106,9 +106,6 @@ class Settings {
|
|||||||
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
||||||
$data['sender_restrictions'] = [
|
$data['sender_restrictions'] = [
|
||||||
'lowerLimit' => AuthorizedSenderDomainController::LOWER_LIMIT,
|
'lowerLimit' => AuthorizedSenderDomainController::LOWER_LIMIT,
|
||||||
'upperLimit' => AuthorizedSenderDomainController::UPPER_LIMIT,
|
|
||||||
'isNewUser' => $this->senderDomainController->isNewUser(),
|
|
||||||
'isEnforcementOfNewRestrictionsInEffect' => $this->senderDomainController->isEnforcementOfNewRestrictionsInEffect(),
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@ use MailPoet\Services\Bridge\API;
|
|||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Util\License\Features\Subscribers;
|
use MailPoet\Util\License\Features\Subscribers;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
|
||||||
|
|
||||||
class AuthorizedSenderDomainController {
|
class AuthorizedSenderDomainController {
|
||||||
const OVERALL_STATUS_VERIFIED = 'verified';
|
const OVERALL_STATUS_VERIFIED = 'verified';
|
||||||
@ -22,8 +21,6 @@ class AuthorizedSenderDomainController {
|
|||||||
const LOWER_LIMIT = 100;
|
const LOWER_LIMIT = 100;
|
||||||
const UPPER_LIMIT = 200;
|
const UPPER_LIMIT = 200;
|
||||||
|
|
||||||
const ENFORCEMENT_START_TIME = '2024-02-01 00:00:00 UTC';
|
|
||||||
|
|
||||||
const INSTALLED_AFTER_NEW_RESTRICTIONS_OPTION = 'installed_after_new_domain_restrictions';
|
const INSTALLED_AFTER_NEW_RESTRICTIONS_OPTION = 'installed_after_new_domain_restrictions';
|
||||||
|
|
||||||
const SENDER_DOMAINS_KEY = 'mailpoet_sender_domains';
|
const SENDER_DOMAINS_KEY = 'mailpoet_sender_domains';
|
||||||
@ -261,11 +258,6 @@ class AuthorizedSenderDomainController {
|
|||||||
return $this->currentRecords;
|
return $this->currentRecords;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Remove after the enforcement date has passed
|
|
||||||
public function isEnforcementOfNewRestrictionsInEffect(): bool {
|
|
||||||
return Carbon::now() >= Carbon::parse(self::ENFORCEMENT_START_TIME);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function isNewUser(): bool {
|
public function isNewUser(): bool {
|
||||||
$installedVersion = $this->settingsController->get('version');
|
$installedVersion = $this->settingsController->get('version');
|
||||||
|
|
||||||
@ -306,9 +298,6 @@ class AuthorizedSenderDomainController {
|
|||||||
'allSenderDomains' => $this->getAllSenderDomains(),
|
'allSenderDomains' => $this->getAllSenderDomains(),
|
||||||
'senderRestrictions' => [
|
'senderRestrictions' => [
|
||||||
'lowerLimit' => self::LOWER_LIMIT,
|
'lowerLimit' => self::LOWER_LIMIT,
|
||||||
'upperLimit' => self::UPPER_LIMIT,
|
|
||||||
'isNewUser' => $this->isNewUser(),
|
|
||||||
'isEnforcementOfNewRestrictionsInEffect' => $this->isEnforcementOfNewRestrictionsInEffect(),
|
|
||||||
'alwaysRewrite' => false,
|
'alwaysRewrite' => false,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
@ -426,13 +426,6 @@ class AuthorizedSenderDomainControllerTest extends \MailPoetTest {
|
|||||||
$this->assertFalse($this->getController()->isNewUser());
|
$this->assertFalse($this->getController()->isNewUser());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItKnowsWhenNewRestrictionsStartGettingEnforced(): void {
|
|
||||||
Carbon::setTestNow(Carbon::parse('2024-01-31 00:00:00 UTC'));
|
|
||||||
$this->assertFalse($this->getController()->isEnforcementOfNewRestrictionsInEffect());
|
|
||||||
Carbon::setTestNow(Carbon::parse('2024-02-01 00:00:01 UTC'));
|
|
||||||
$this->assertTrue($this->getController()->isEnforcementOfNewRestrictionsInEffect());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testIsSmallSenderIfSubscribersUnderLowerLimit(): void {
|
public function testIsSmallSenderIfSubscribersUnderLowerLimit(): void {
|
||||||
$subscribersMock = $this->make(Subscribers::class, [
|
$subscribersMock = $this->make(Subscribers::class, [
|
||||||
'getSubscribersCount' => Expected::once($this->lowerLimit),
|
'getSubscribersCount' => Expected::once($this->lowerLimit),
|
||||||
|
Reference in New Issue
Block a user