| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace MailPoet\Util\Notices;
- if (!defined('ABSPATH')) exit;
- use MailPoet\Newsletter\Renderer\EscapeHelper;
- use MailPoet\Services\AuthorizedEmailsController;
- use MailPoet\Settings\SettingsController;
- use MailPoet\WP\Functions as WPFunctions;
- use MailPoet\WP\Notice;
- class UnauthorizedEmailNotice {
- const OPTION_NAME = 'unauthorized-email-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_sender_address'])) {
- return $this->display($validationError);
- }
- }
- public function display($validationError) {
- $message = $this->getMessageText($validationError);
- $message .= $this->getFixThisButton();
- $extraClasses = 'mailpoet-js-error-unauthorized-emails-notice';
- Notice::displayError($message, $extraClasses, self::OPTION_NAME, false, false);
- }
- private function getMessageText($validationError) {
- $text = $this->wp->_x('<b>Sending all of your emails has been paused</b> because your email address %s hasn’t been authorized yet.',
- 'Email addresses have to be authorized to be used to send emails. %s will be replaced by an email address.',
- 'mailpoet');
- $message = str_replace('%s', EscapeHelper::escapeHtmlText($validationError['invalid_sender_address']), $text);
- return "<p>$message</p>";
- }
- private function getFixThisButton() {
- $button = '<button class="button button-primary mailpoet-js-button-fix-this">' . $this->wp->__('Fix this!', 'mailpoet') . '</button>';
- return "<p>$button</p>";
- }
- }
|