File "UnauthorizedEmailInNewslettersNotice.php"
Full Path: /home/warrior1/public_html/languages/wp-content/plugins/mailpoet/lib/Util/Notices/UnauthorizedEmailInNewslettersNotice.php
File size: 2.52 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace MailPoet\Util\Notices;
if (!defined('ABSPATH')) exit;
use MailPoet\Config\Menu;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\MailerLog;
use MailPoet\Newsletter\Renderer\EscapeHelper;
use MailPoet\Services\AuthorizedEmailsController;
use MailPoet\Settings\SettingsController;
use MailPoet\Util\Helpers;
use MailPoet\WP\Functions as WPFunctions;
class UnauthorizedEmailInNewslettersNotice {
const OPTION_NAME = 'unauthorized-email-in-newsletters-addresses-notice';
/** @var SettingsController */
private $settings;
/** @var WPFunctions */
private $wp;
public function __construct(
SettingsController $settings,
WPFunctions $wp
) {
$this->settings = $settings;
$this->wp = $wp;
}
public function init($shouldDisplay) {
$validationError = $this->settings->get(AuthorizedEmailsController::AUTHORIZED_EMAIL_ADDRESSES_ERROR_SETTING);
if ($shouldDisplay && isset($validationError['invalid_senders_in_newsletters'])) {
return $this->display($validationError);
}
}
public function display($validationError) {
$message = $this->getMessageText();
$message .= $this->getNewslettersLinks($validationError);
$message .= $this->getFixThisButton();
// Use Mailer log errors display system to display this notice
$mailerLog = MailerLog::setError(MailerLog::getMailerLog(), MailerError::OPERATION_AUTHORIZATION, $message);
MailerLog::updateMailerLog($mailerLog);
}
private function getMessageText() {
$message = __('<b>Your automatic emails have been paused</b> because some email addresses haven’t been authorized yet.', 'mailpoet');
return "<p>$message</p>";
}
private function getNewslettersLinks($validationError) {
$links = '';
foreach ($validationError['invalid_senders_in_newsletters'] as $error) {
// translators: %s is the newsletter subject.
$linkText = _x('Update the from address of %s', '%s will be replaced by a newsletter subject', 'mailpoet');
$linkText = str_replace('%s', EscapeHelper::escapeHtmlText($error['subject']), $linkText);
$linkUrl = $this->wp->adminUrl('admin.php?page=' . Menu::MAIN_PAGE_SLUG . '#/send/' . $error['newsletter_id']);
$link = Helpers::replaceLinkTags("[link]{$linkText}[/link]", $linkUrl, ['target' => '_blank']);
$links .= "<p>$link</p>";
}
return $links;
}
private function getFixThisButton() {
$button = '<button class="button button-primary mailpoet-js-button-fix-this">' . __('Fix this!', 'mailpoet') . '</button>';
return "<p>$button</p>";
}
}