Fix checking if post notification email contains any ALC posts
[MAILPOET-2029]
This commit is contained in:
@@ -97,10 +97,9 @@ class Newsletter {
|
|||||||
$newsletter
|
$newsletter
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// check if this is a post notification and if it contains posts
|
// check if this is a post notification and if it contains at least 1 ALC post
|
||||||
$newsletter_contains_posts = strpos($rendered_newsletter['html'], 'data-post-id');
|
|
||||||
if ($newsletter->type === NewsletterModel::TYPE_NOTIFICATION_HISTORY &&
|
if ($newsletter->type === NewsletterModel::TYPE_NOTIFICATION_HISTORY &&
|
||||||
!$newsletter_contains_posts
|
$this->posts_task->getAlcPostsCount($rendered_newsletter, $newsletter) === 0
|
||||||
) {
|
) {
|
||||||
// delete notification history record since it will never be sent
|
// delete notification history record since it will never be sent
|
||||||
$newsletter->delete();
|
$newsletter->delete();
|
||||||
|
@@ -28,4 +28,10 @@ class Posts {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getAlcPostsCount($rendered_newsletter, \MailPoet\Models\Newsletter $newsletter) {
|
||||||
|
$template_posts_count = substr_count($newsletter->body, 'data-post-id');
|
||||||
|
$newsletter_posts_count = substr_count($rendered_newsletter['html'], 'data-post-id');
|
||||||
|
return $newsletter_posts_count - $template_posts_count;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,6 +6,7 @@ use AspectMock\Test as Mock;
|
|||||||
use Codeception\Util\Fixtures;
|
use Codeception\Util\Fixtures;
|
||||||
use Helper\WordPressHooks as WPHooksHelper;
|
use Helper\WordPressHooks as WPHooksHelper;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
||||||
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Posts as PostsTask;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Models\NewsletterLink;
|
||||||
@@ -192,7 +193,11 @@ class NewsletterTest extends \MailPoetTest {
|
|||||||
function testItSavesNewsletterPosts() {
|
function testItSavesNewsletterPosts() {
|
||||||
$this->newsletter->type = Newsletter::TYPE_NOTIFICATION_HISTORY;
|
$this->newsletter->type = Newsletter::TYPE_NOTIFICATION_HISTORY;
|
||||||
$this->newsletter->parent_id = $this->newsletter->id;
|
$this->newsletter->parent_id = $this->newsletter->id;
|
||||||
$result = $this->newsletter_task->preProcessNewsletter($this->newsletter, $this->queue);
|
$posts_task = $this->make(PostsTask::class, [
|
||||||
|
'getAlcPostsCount' => 1
|
||||||
|
]);
|
||||||
|
$newsletter_task = new NewsletterTask(new WPFunctions, $posts_task);
|
||||||
|
$result = $newsletter_task->preProcessNewsletter($this->newsletter, $this->queue);
|
||||||
$newsletter_post = NewsletterPost::where('newsletter_id', $this->newsletter->id)
|
$newsletter_post = NewsletterPost::where('newsletter_id', $this->newsletter->id)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect($result)->notEquals(false);
|
expect($result)->notEquals(false);
|
||||||
|
Reference in New Issue
Block a user