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