Use Doctrine for update success message in Settings

[MAILPOET-3034]
This commit is contained in:
Jan Lysý
2021-03-07 18:39:57 +01:00
committed by Veljko V
parent 90295b3c3a
commit cb0d3c70ad
6 changed files with 52 additions and 11 deletions

View File

@ -6,7 +6,9 @@ use MailPoet\Cron\CronTrigger;
use MailPoet\Cron\Workers\InactiveSubscribers;
use MailPoet\Cron\Workers\WooCommerceSync;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Entities\FormEntity;
use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Form\FormsRepository;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon;
@ -31,14 +33,19 @@ class SettingsController {
/** @var ScheduledTasksRepository */
private $tasksRepository;
/** @var FormsRepository */
private $formsRepository;
private static $instance;
public function __construct(
SettingsRepository $settingsRepository,
ScheduledTasksRepository $scheduledTasksRepository
ScheduledTasksRepository $scheduledTasksRepository,
FormsRepository $formsRepository
) {
$this->settingsRepository = $settingsRepository;
$this->tasksRepository = $scheduledTasksRepository;
$this->formsRepository = $formsRepository;
}
public function get($key, $default = null) {
@ -162,6 +169,32 @@ class SettingsController {
$this->tasksRepository->flush();
}
public function updateSuccessMessages(): void {
$rightMessage = $this->getDefaultSuccessMessage();
$wrongMessage = (
$rightMessage === __('Check your inbox or spam folder to confirm your subscription.', 'mailpoet')
? __('Youve been successfully subscribed to our newsletter!', 'mailpoet')
: __('Check your inbox or spam folder to confirm your subscription.', 'mailpoet')
);
/** @var FormEntity[] $forms */
$forms = $this->formsRepository->findAll();
foreach ($forms as $form) {
$settings = $form->getSettings();
if (isset($settings['success_message']) && $settings['success_message'] === $wrongMessage) {
$settings['success_message'] = $rightMessage;
$form->setSettings($settings);
$this->settingsRepository->flush();
}
}
}
public function getDefaultSuccessMessage(): string {
if ($this->get('signup_confirmation.enabled')) {
return __('Check your inbox or spam folder to confirm your subscription.', 'mailpoet');
}
return __('Youve been successfully subscribed to our newsletter!', 'mailpoet');
}
private function createScheduledTask(string $type): ScheduledTaskEntity {
$task = new ScheduledTaskEntity();
$task->setType($type);