From 5d98703b42e68f0ca18034e20faf853bf8fccf5c Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Tue, 29 Oct 2019 11:59:41 +0100 Subject: [PATCH] Check requirements when listings subscribers [MAILPOET-2486] --- lib/Models/SubscribersInDynamicSegment.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/Models/SubscribersInDynamicSegment.php b/lib/Models/SubscribersInDynamicSegment.php index 152c8bbba3..df8a3b1c3d 100644 --- a/lib/Models/SubscribersInDynamicSegment.php +++ b/lib/Models/SubscribersInDynamicSegment.php @@ -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); + } + + }