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\Persistence\Loading\SingleSegmentLoader;
use MailPoet\Models\Subscriber;
use MailPoet\DynamicSegments\RequirementsChecker;
use MailPoet\WooCommerce\Helper as WooCommerceHelper;
class SubscribersInDynamicSegment extends Subscriber {
@ -12,6 +13,9 @@ class SubscribersInDynamicSegment extends Subscriber {
$query = self::select(self::$_table . '.*');
$single_segment_loader = new SingleSegmentLoader(new DBMapper());
$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) {
$query = $filter->toSql($query);
}
@ -24,4 +28,10 @@ class SubscribersInDynamicSegment extends Subscriber {
return $query;
}
private static function shouldSkip($dynamic_segment) {
$requirements_checker = new RequirementsChecker(new WooCommerceHelper());
return $requirements_checker->shouldSkipSegment($dynamic_segment);
}
}