Check requirements when listings subscribers

[MAILPOET-2486]
This commit is contained in:
Pavel Dohnal
2019-10-29 11:59:41 +01:00
committed by Jack Kitterhing
parent 9199c9f61a
commit 5d98703b42

View File

@ -4,7 +4,8 @@ namespace MailPoet\Models;
use MailPoet\DynamicSegments\Mappers\DBMapper; use MailPoet\DynamicSegments\Mappers\DBMapper;
use MailPoet\DynamicSegments\Persistence\Loading\SingleSegmentLoader; use MailPoet\DynamicSegments\Persistence\Loading\SingleSegmentLoader;
use MailPoet\Models\Subscriber; use MailPoet\DynamicSegments\RequirementsChecker;
use MailPoet\WooCommerce\Helper as WooCommerceHelper;
class SubscribersInDynamicSegment extends Subscriber { class SubscribersInDynamicSegment extends Subscriber {
@ -12,6 +13,9 @@ class SubscribersInDynamicSegment extends Subscriber {
$query = self::select(self::$_table . '.*'); $query = self::select(self::$_table . '.*');
$single_segment_loader = new SingleSegmentLoader(new DBMapper()); $single_segment_loader = new SingleSegmentLoader(new DBMapper());
$dynamic_segment = $single_segment_loader->load($data['filter']['segment']); $dynamic_segment = $single_segment_loader->load($data['filter']['segment']);
if (self::shouldSkip($dynamic_segment)) {
return $query->whereRaw('0=1');
}
foreach ($dynamic_segment->getFilters() as $filter) { foreach ($dynamic_segment->getFilters() as $filter) {
$query = $filter->toSql($query); $query = $filter->toSql($query);
} }
@ -24,4 +28,10 @@ class SubscribersInDynamicSegment extends Subscriber {
return $query; return $query;
} }
private static function shouldSkip($dynamic_segment) {
$requirements_checker = new RequirementsChecker(new WooCommerceHelper());
return $requirements_checker->shouldSkipSegment($dynamic_segment);
}
} }