Don't track sent ALC posts for welcome and standard emails (always send the latest posts) [MAILPOET-1069]
This commit is contained in:
@@ -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;
|
||||
|
@@ -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(
|
||||
|
@@ -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' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
|
||||
);
|
||||
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,6 +35,21 @@ 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' => '<a data-post-id="' . $post_id . '" href="#">sample post</a>'
|
||||
);
|
||||
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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user