Duplicate associated post when duplicating newsletter
[MAILPOET-5365]
This commit is contained in:
committed by
Aschepikov
parent
3ff4ba0c86
commit
61d6e41fc7
@@ -76,7 +76,7 @@ class NewsletterSaveController {
|
|||||||
|
|
||||||
/*** @var NewsletterCoupon */
|
/*** @var NewsletterCoupon */
|
||||||
private $newsletterCoupon;
|
private $newsletterCoupon;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
AuthorizedEmailsController $authorizedEmailsController,
|
AuthorizedEmailsController $authorizedEmailsController,
|
||||||
Emoji $emoji,
|
Emoji $emoji,
|
||||||
@@ -194,6 +194,16 @@ class NewsletterSaveController {
|
|||||||
$this->newslettersRepository->persist($duplicate);
|
$this->newslettersRepository->persist($duplicate);
|
||||||
$this->newslettersRepository->flush();
|
$this->newslettersRepository->flush();
|
||||||
|
|
||||||
|
// duplicate wp post data
|
||||||
|
$post = $this->wp->getPost($newsletter->getWpPostId());
|
||||||
|
if ($post instanceof \WP_Post) {
|
||||||
|
$newPostId = $this->wp->wpInsertPost([
|
||||||
|
'post_content' => $post->post_content, // @phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||||
|
'post_type' => $post->post_type, // @phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||||
|
]);
|
||||||
|
$duplicate->setWpPostId($newPostId);
|
||||||
|
}
|
||||||
|
|
||||||
// create relationships between duplicate and segments
|
// create relationships between duplicate and segments
|
||||||
foreach ($newsletter->getNewsletterSegments() as $newsletterSegment) {
|
foreach ($newsletter->getNewsletterSegments() as $newsletterSegment) {
|
||||||
$segment = $newsletterSegment->getSegment();
|
$segment = $newsletterSegment->getSegment();
|
||||||
|
@@ -15,6 +15,7 @@ use MailPoet\Newsletter\Scheduler\Scheduler;
|
|||||||
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Tasks\Sending as SendingTask;
|
use MailPoet\Tasks\Sending as SendingTask;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
|
|
||||||
class NewsletterSaveControllerTest extends \MailPoetTest {
|
class NewsletterSaveControllerTest extends \MailPoetTest {
|
||||||
@@ -314,6 +315,18 @@ class NewsletterSaveControllerTest extends \MailPoetTest {
|
|||||||
expect($duplicate->getStatus())->equals(NewsletterEntity::STATUS_DRAFT);
|
expect($duplicate->getStatus())->equals(NewsletterEntity::STATUS_DRAFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testItDuplicatesNewsletterWithAssociatedPost() {
|
||||||
|
$newsletter = $this->createNewsletter(NewsletterEntity::TYPE_STANDARD, NewsletterEntity::STATUS_SENT);
|
||||||
|
$wp = $this->diContainer->get(WPFunctions::class);
|
||||||
|
$postId = $wp->wpInsertPost(['post_content' => 'newsletter content']);
|
||||||
|
$newsletter->setWpPostId($postId);
|
||||||
|
$this->entityManager->flush();
|
||||||
|
$duplicate = $this->saveController->duplicate($newsletter);
|
||||||
|
expect($duplicate->getWpPostId())->notEquals($postId);
|
||||||
|
$post = $wp->getPost($duplicate->getWpPostId());
|
||||||
|
expect($post->post_content)->equals('newsletter content'); // @phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||||
|
}
|
||||||
|
|
||||||
public function testItCreatesNewNewsletter() {
|
public function testItCreatesNewNewsletter() {
|
||||||
$data = [
|
$data = [
|
||||||
'subject' => 'My First Newsletter',
|
'subject' => 'My First Newsletter',
|
||||||
|
Reference in New Issue
Block a user