Duplicate associated post when duplicating newsletter
[MAILPOET-5365]
This commit is contained in:
committed by
Aschepikov
parent
3ff4ba0c86
commit
61d6e41fc7
@@ -194,6 +194,16 @@ class NewsletterSaveController {
|
||||
$this->newslettersRepository->persist($duplicate);
|
||||
$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
|
||||
foreach ($newsletter->getNewsletterSegments() as $newsletterSegment) {
|
||||
$segment = $newsletterSegment->getSegment();
|
||||
|
@@ -15,6 +15,7 @@ use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
|
||||
class NewsletterSaveControllerTest extends \MailPoetTest {
|
||||
@@ -314,6 +315,18 @@ class NewsletterSaveControllerTest extends \MailPoetTest {
|
||||
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() {
|
||||
$data = [
|
||||
'subject' => 'My First Newsletter',
|
||||
|
Reference in New Issue
Block a user