diff --git a/lib/DynamicSegments/Persistence/Loading/SubscribersCount.php b/lib/DynamicSegments/Persistence/Loading/SubscribersCount.php index 171b0234bf..f5d10a5879 100644 --- a/lib/DynamicSegments/Persistence/Loading/SubscribersCount.php +++ b/lib/DynamicSegments/Persistence/Loading/SubscribersCount.php @@ -32,6 +32,7 @@ class SubscribersCount { foreach ($dynamicSegment->getFilters() as $filter) { $orm = $filter->toSql($orm); } + $orm->where(MP_SUBSCRIBERS_TABLE . '.status', Subscriber::STATUS_SUBSCRIBED); return $orm->findOne()->cnt; } } diff --git a/tests/integration/DynamicSegments/Persistence/Loading/SubscribersCountTest.php b/tests/integration/DynamicSegments/Persistence/Loading/SubscribersCountTest.php index b8e0556bb2..6a6320c156 100644 --- a/tests/integration/DynamicSegments/Persistence/Loading/SubscribersCountTest.php +++ b/tests/integration/DynamicSegments/Persistence/Loading/SubscribersCountTest.php @@ -7,6 +7,7 @@ require_once(ABSPATH . 'wp-admin/includes/user.php'); use MailPoet\DynamicSegments\Filters\UserRole; use MailPoet\DynamicSegments\RequirementsChecker; use MailPoet\Models\DynamicSegment; +use MailPoet\Models\Subscriber; use PHPUnit\Framework\MockObject\MockObject; class SubscribersCountTest extends \MailPoetTest { @@ -43,6 +44,12 @@ class SubscribersCountTest extends \MailPoetTest { public function testItConstructsQuery() { $this->requirementChecker->method('shouldSkipSegment')->willReturn(false); $userRole = DynamicSegment::create(); + $subscriber1 = Subscriber::findOne('user-role-test1@example.com'); + $subscriber1->status = Subscriber::STATUS_SUBSCRIBED; + $subscriber1->save(); + $subscriber3 = Subscriber::findOne('user-role-test3@example.com'); + $subscriber3->status = Subscriber::STATUS_SUBSCRIBED; + $subscriber3->save(); $userRole->hydrate([ 'name' => 'segment', 'description' => 'description',