Limit legacy segment subscriber count to subscribed subscribers

[MAILPOET-3077]
This commit is contained in:
Rostislav Wolny
2020-09-24 11:26:45 +02:00
committed by Veljko V
parent b37d1f8c03
commit cdc090fc15
2 changed files with 8 additions and 0 deletions

View File

@ -32,6 +32,7 @@ class SubscribersCount {
foreach ($dynamicSegment->getFilters() as $filter) { foreach ($dynamicSegment->getFilters() as $filter) {
$orm = $filter->toSql($orm); $orm = $filter->toSql($orm);
} }
$orm->where(MP_SUBSCRIBERS_TABLE . '.status', Subscriber::STATUS_SUBSCRIBED);
return $orm->findOne()->cnt; return $orm->findOne()->cnt;
} }
} }

View File

@ -7,6 +7,7 @@ require_once(ABSPATH . 'wp-admin/includes/user.php');
use MailPoet\DynamicSegments\Filters\UserRole; use MailPoet\DynamicSegments\Filters\UserRole;
use MailPoet\DynamicSegments\RequirementsChecker; use MailPoet\DynamicSegments\RequirementsChecker;
use MailPoet\Models\DynamicSegment; use MailPoet\Models\DynamicSegment;
use MailPoet\Models\Subscriber;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
class SubscribersCountTest extends \MailPoetTest { class SubscribersCountTest extends \MailPoetTest {
@ -43,6 +44,12 @@ class SubscribersCountTest extends \MailPoetTest {
public function testItConstructsQuery() { public function testItConstructsQuery() {
$this->requirementChecker->method('shouldSkipSegment')->willReturn(false); $this->requirementChecker->method('shouldSkipSegment')->willReturn(false);
$userRole = DynamicSegment::create(); $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([ $userRole->hydrate([
'name' => 'segment', 'name' => 'segment',
'description' => 'description', 'description' => 'description',