Adds method to validate rendered newsletter body on sending queue

Prevents sending queue worker from sending when sending queue's rendered
newsletter body is invalid
This commit is contained in:
Vlad
2017-07-22 18:44:45 -04:00
parent 197537d6ca
commit 1a522794d6
3 changed files with 56 additions and 4 deletions

View File

@ -1,6 +1,7 @@
<?php
namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
use MailPoet\Models\SendingQueue as SendingQueueModel;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links as LinksTask;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Posts as PostsTask;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Shortcodes as ShortcodesTask;
@ -89,7 +90,14 @@ class Newsletter {
$queue->newsletter_rendered_subject = Shortcodes::process($newsletter->subject, $newsletter, null, $queue);
$queue->newsletter_rendered_body = $rendered_newsletter;
$queue->save();
if($queue->getErrors()) {
// catch DB errors
$queue_errors = $queue->getErrors();
if(!$queue_errors) {
// verify that the rendered body was successfully saved
$queue = SendingQueueModel::findOne($queue->id);
$queue_errors = ($queue->isRenderedNewsletterBodyValid() !== true);
}
if($queue_errors) {
return MailerLog::processError(
'queue_save',
__('There was an error processing your newsletter during sending. If possible, please contact us and report this issue.')