Add filter form manage subscription form fields
[MAILPOET-1635]
This commit is contained in:
committed by
Veljko V
parent
7c979c9b56
commit
7c2e9162a1
@ -74,6 +74,8 @@ class ManageSubscriptionFormRenderer {
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$form = $this->wp->applyFilters('mailpoet_manage_subscription_page_form_fields', $form);
|
||||||
|
|
||||||
$templateData = [
|
$templateData = [
|
||||||
'actionUrl' => admin_url('admin-post.php'),
|
'actionUrl' => admin_url('admin-post.php'),
|
||||||
'redirectUrl' => $this->urlHelper->getCurrentUrl(),
|
'redirectUrl' => $this->urlHelper->getCurrentUrl(),
|
||||||
|
@ -6,6 +6,7 @@ use MailPoet\Entities\SegmentEntity;
|
|||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Entities\SubscriberSegmentEntity;
|
use MailPoet\Entities\SubscriberSegmentEntity;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class ManageSubscriptionFormRendererTest extends \MailPoetTest {
|
class ManageSubscriptionFormRendererTest extends \MailPoetTest {
|
||||||
/** @var ManageSubscriptionFormRenderer */
|
/** @var ManageSubscriptionFormRenderer */
|
||||||
@ -18,24 +19,7 @@ class ManageSubscriptionFormRendererTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItGeneratesForm() {
|
public function testItGeneratesForm() {
|
||||||
$segment = new SegmentEntity();
|
$subscriber = $this->getSubscriber($this->getSegment());
|
||||||
$segment->setName('Test segment');
|
|
||||||
$segment->setDescription('Description');
|
|
||||||
$segment->setType(SegmentEntity::TYPE_DEFAULT);
|
|
||||||
$this->entityManager->persist($segment);
|
|
||||||
|
|
||||||
$subscriber = new SubscriberEntity();
|
|
||||||
$subscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
|
||||||
$subscriber->setFirstName('Fname');
|
|
||||||
$subscriber->setLastName('Lname');
|
|
||||||
$subscriber->setEmail('subscriber@test.com');
|
|
||||||
|
|
||||||
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
|
|
||||||
$this->entityManager->persist($subscriberSegment);
|
|
||||||
$subscriber->getSegments()->add($subscriberSegment);
|
|
||||||
$this->entityManager->persist($subscriber);
|
|
||||||
$this->entityManager->flush();
|
|
||||||
|
|
||||||
$form = $this->formRenderer->renderForm(Subscriber::findOne($subscriber->getId()));
|
$form = $this->formRenderer->renderForm(Subscriber::findOne($subscriber->getId()));
|
||||||
expect($form)->regExp('/<form class="mailpoet-manage-subscription" method="post" action="[a-z0-9:\/\.]+wp-admin\/admin-post.php" novalidate>/');
|
expect($form)->regExp('/<form class="mailpoet-manage-subscription" method="post" action="[a-z0-9:\/\.]+wp-admin\/admin-post.php" novalidate>/');
|
||||||
expect($form)->contains('<input type="hidden" name="data[email]" value="subscriber@test.com" />');
|
expect($form)->contains('<input type="hidden" name="data[email]" value="subscriber@test.com" />');
|
||||||
@ -45,6 +29,52 @@ class ManageSubscriptionFormRendererTest extends \MailPoetTest {
|
|||||||
expect($form)->contains('Need to change your email address? Unsubscribe here, then simply sign up again.');
|
expect($form)->contains('Need to change your email address? Unsubscribe here, then simply sign up again.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testItAppliesFieldsFilter() {
|
||||||
|
$subscriber = $this->getSubscriber($this->getSegment());
|
||||||
|
$wp = $this->diContainer->get(WPFunctions::class);
|
||||||
|
$wp->addFilter('mailpoet_manage_subscription_page_form_fields', function($fields) {
|
||||||
|
$fields[] = [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'Additional info',
|
||||||
|
'id' => 'additional_info',
|
||||||
|
'params' => [
|
||||||
|
'label' => 'Additional info',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
return $fields;
|
||||||
|
});
|
||||||
|
$form = $this->formRenderer->renderForm(Subscriber::findOne($subscriber->getId()));
|
||||||
|
expect($form)->regExp('/<input type="text" class="mailpoet_text" name="data\[[a-zA-Z0-9=_]+\]" title="Additional info" value="" \/>/');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getSegment(): SegmentEntity {
|
||||||
|
$segment = new SegmentEntity();
|
||||||
|
$segment->setName('Test segment');
|
||||||
|
$segment->setDescription('Description');
|
||||||
|
$segment->setType(SegmentEntity::TYPE_DEFAULT);
|
||||||
|
$this->entityManager->persist($segment);
|
||||||
|
$this->entityManager->flush();
|
||||||
|
return $segment;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getSubscriber(SegmentEntity $segment = null): SubscriberEntity {
|
||||||
|
$subscriber = new SubscriberEntity();
|
||||||
|
$subscriber->setStatus(SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
|
$subscriber->setFirstName('Fname');
|
||||||
|
$subscriber->setLastName('Lname');
|
||||||
|
$subscriber->setEmail('subscriber@test.com');
|
||||||
|
|
||||||
|
if ($segment) {
|
||||||
|
$subscriberSegment = new SubscriberSegmentEntity($segment, $subscriber, SubscriberEntity::STATUS_SUBSCRIBED);
|
||||||
|
$this->entityManager->persist($subscriberSegment);
|
||||||
|
$subscriber->getSegments()->add($subscriberSegment);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->entityManager->persist($subscriber);
|
||||||
|
$this->entityManager->flush();
|
||||||
|
return $subscriber;
|
||||||
|
}
|
||||||
|
|
||||||
private function cleanup() {
|
private function cleanup() {
|
||||||
$this->truncateEntity(SubscriberEntity::class);
|
$this->truncateEntity(SubscriberEntity::class);
|
||||||
$this->truncateEntity(SubscriberSegmentEntity::class);
|
$this->truncateEntity(SubscriberSegmentEntity::class);
|
||||||
|
Reference in New Issue
Block a user