diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Posts.php b/lib/Cron/Workers/SendingQueue/Tasks/Posts.php
index d38c25c923..87839508d6 100644
--- a/lib/Cron/Workers/SendingQueue/Tasks/Posts.php
+++ b/lib/Cron/Workers/SendingQueue/Tasks/Posts.php
@@ -8,6 +8,9 @@ if(!defined('ABSPATH')) exit;
class Posts {
static function extractAndSave($rendered_newsletter, $newsletter) {
+ if($newsletter->type !== NewsletterModel::TYPE_NOTIFICATION_HISTORY) {
+ return false;
+ }
preg_match_all(
'/data-post-id="(\d+)"/ism',
$rendered_newsletter['html'],
@@ -16,9 +19,7 @@ class Posts {
if(!count($matched_posts_ids)) {
return false;
}
- $newsletter_id = ($newsletter->type === NewsletterModel::TYPE_NOTIFICATION_HISTORY) ?
- $newsletter->parent_id :
- $newsletter->id;
+ $newsletter_id = $newsletter->parent_id; // parent post notification
foreach($matched_posts_ids as $post_id) {
$newsletter_post = NewsletterPost::create();
$newsletter_post->newsletter_id = $newsletter_id;
@@ -27,4 +28,4 @@ class Posts {
}
return true;
}
-}
\ No newline at end of file
+}
diff --git a/lib/Newsletter/Renderer/Blocks/Renderer.php b/lib/Newsletter/Renderer/Blocks/Renderer.php
index e977e81f5a..525197bcf2 100644
--- a/lib/Newsletter/Renderer/Blocks/Renderer.php
+++ b/lib/Newsletter/Renderer/Blocks/Renderer.php
@@ -23,11 +23,8 @@ class Renderer {
$parent = Newsletter::findOne($newsletter_id);
$newer_than_timestamp = $parent->created_at;
}
- } else if($preview) {
- $newsletter_id = false;
- $newer_than_timestamp = false;
} else {
- $newsletter_id = $newsletter['id'];
+ $newsletter_id = false;
$newer_than_timestamp = false;
}
$this->ALC = new \MailPoet\Newsletter\AutomatedLatestContent(
diff --git a/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php b/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php
index b787116f44..add9704c87 100644
--- a/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php
+++ b/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php
@@ -11,6 +11,7 @@ class PostsTest extends \MailPoetTest {
function testItFailsWhenNoPostsArePresent() {
$newsletter = (object)array(
'id' => 1,
+ 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY
);
$rendered_newsletter = array(
'html' => 'Sample newsletter'
@@ -19,21 +20,6 @@ class PostsTest extends \MailPoetTest {
}
function testItCanExtractAndSavePosts() {
- $post_id = 10;
- $newsletter = (object)array(
- 'id' => 1,
- 'type' => Newsletter::TYPE_STANDARD
- );
- $rendered_newsletter = array(
- 'html' => 'sample post'
- );
- expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(true);
- $newsletter_post = NewsletterPost::where('newsletter_id', $newsletter->id)
- ->findOne();
- expect($newsletter_post->post_id)->equals($post_id);
- }
-
- function testItSetsNewsletterIdToParentIdWhenNewsletterIsANotificationHistory() {
$post_id = 10;
$newsletter = (object)array(
'id' => 2,
@@ -49,7 +35,22 @@ class PostsTest extends \MailPoetTest {
expect($newsletter_post->post_id)->equals($post_id);
}
+ function testItDoesNotSavePostsWhenNewsletterIsNotANotificationHistory() {
+ $post_id = 10;
+ $newsletter = (object)array(
+ 'id' => 2,
+ 'parent_id' => 1,
+ 'type' => Newsletter::TYPE_WELCOME
+ );
+ $rendered_newsletter = array(
+ 'html' => 'sample post'
+ );
+ expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false);
+ $newsletter->type = Newsletter::TYPE_STANDARD;
+ expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false);
+ }
+
function _after() {
\ORM::raw_execute('TRUNCATE ' . NewsletterPost::$_table);
}
-}
\ No newline at end of file
+}