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) {
$orm = $filter->toSql($orm);
}
$orm->where(MP_SUBSCRIBERS_TABLE . '.status', Subscriber::STATUS_SUBSCRIBED);
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\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',