Merge pull request #1018 from mailpoet/prevent_sending_with_broken_newsletter_body

Prevents sending emails when rendered newsletter is broken [MAILPOET-1020]
This commit is contained in:
Tautvidas Sipavičius
2017-07-25 13:13:03 +03:00
committed by GitHub
7 changed files with 161 additions and 48 deletions

View File

@ -12,6 +12,14 @@ class SendingQueue extends Model {
const PRIORITY_MEDIUM = 5;
const PRIORITY_LOW = 10;
function __construct() {
parent::__construct();
$this->addValidations('newsletter_rendered_body', array(
'validRenderedNewsletterBody' => __('Rendered newsletter body is invalid!', 'mailpoet')
));
}
function newsletter() {
return $this->has_one(__NAMESPACE__ . '\Newsletter', 'id', 'newsletter_id');
}
@ -43,10 +51,10 @@ class SendingQueue extends Model {
}
function save() {
if(!is_serialized($this->subscribers)) {
if(!is_serialized($this->subscribers) && !is_null($this->subscribers)) {
$this->set('subscribers', serialize($this->subscribers));
}
if(!is_serialized($this->newsletter_rendered_body)) {
if(!is_serialized($this->newsletter_rendered_body) && !is_null($this->newsletter_rendered_body)) {
$this->set('newsletter_rendered_body', serialize($this->newsletter_rendered_body));
}
// set the default priority to medium
@ -86,9 +94,8 @@ class SendingQueue extends Model {
function asArray() {
$model = parent::asArray();
$model['subscribers'] = (is_serialized($this->subscribers))
? unserialize($this->subscribers)
: $this->subscribers;
$model['subscribers'] = $this->getSubscribers();
$model['newsletter_rendered_body'] = $this->getNewsletterRenderedBody();
return $model;
}