Fix dynamic segments filtering in subscriber export

[MAILPOET-3177]
This commit is contained in:
Rostislav Wolny
2021-03-09 14:34:25 +01:00
committed by Veljko V
parent 1b74c3e195
commit aff4c9d5b7
2 changed files with 4 additions and 3 deletions

View File

@ -187,7 +187,7 @@ class ImportExportRepository {
->setParameter('segmentName', $segment->getName()); ->setParameter('segmentName', $segment->getName());
$filters = $segment->getDynamicFilters(); $filters = $segment->getDynamicFilters();
foreach ($filters as $filter) { foreach ($filters as $filter) {
$qb = $this->filterHandler->apply($qb, $filter); $qb = $this->filterHandler->apply($qb, $filter->getFilterData());
} }
} }

View File

@ -4,6 +4,7 @@ namespace MailPoet\Subscribers\ImportExport;
use MailPoet\CustomFields\CustomFieldsRepository; use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Entities\CustomFieldEntity; use MailPoet\Entities\CustomFieldEntity;
use MailPoet\Entities\DynamicSegmentFilterData;
use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Entities\DynamicSegmentFilterEntity;
use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SegmentEntity;
use MailPoet\Entities\SubscriberCustomFieldEntity; use MailPoet\Entities\SubscriberCustomFieldEntity;
@ -289,7 +290,7 @@ class ImportExportRepositoryTest extends \MailPoetTest {
$segment1 = $this->createSegment('First', SegmentEntity::TYPE_DEFAULT); $segment1 = $this->createSegment('First', SegmentEntity::TYPE_DEFAULT);
$segment2 = $this->createSegment('Dynamic Segment', SegmentEntity::TYPE_DYNAMIC); $segment2 = $this->createSegment('Dynamic Segment', SegmentEntity::TYPE_DYNAMIC);
$this->createDynamicSegmentFilter($segment2, [ $this->createDynamicSegmentFilter($segment2, [
'segmentType' => DynamicSegmentFilterEntity::TYPE_USER_ROLE, 'segmentType' => DynamicSegmentFilterData::TYPE_USER_ROLE,
'wordpressRole' => 'editor', 'wordpressRole' => 'editor',
]); ]);
$this->createSubscriberSegment($user4, $segment1, SubscriberEntity::STATUS_SUBSCRIBED); $this->createSubscriberSegment($user4, $segment1, SubscriberEntity::STATUS_SUBSCRIBED);
@ -382,7 +383,7 @@ class ImportExportRepositoryTest extends \MailPoetTest {
SegmentEntity $segment, SegmentEntity $segment,
array $filterData array $filterData
): DynamicSegmentFilterEntity { ): DynamicSegmentFilterEntity {
$filter = new DynamicSegmentFilterEntity($segment, $filterData); $filter = new DynamicSegmentFilterEntity($segment, new DynamicSegmentFilterData($filterData));
$this->entityManager->persist($filter); $this->entityManager->persist($filter);
$this->entityManager->flush(); $this->entityManager->flush();
return $filter; return $filter;