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 = __('Your automatic emails have been paused because some email addresses haven’t been authorized yet.', 'mailpoet'); return "
$message
"; } 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::EMAILS_PAGE_SLUG . '#/send/' . $error['newsletter_id']); $link = Helpers::replaceLinkTags("[link]{$linkText}[/link]", $linkUrl, ['target' => '_blank']); $links .= "$link
"; } return $links; } private function getFixThisButton() { $button = ''; return "$button
"; } }