diff --git a/mailpoet/lib/Subscribers/SubscribersRepository.php b/mailpoet/lib/Subscribers/SubscribersRepository.php index 00c1216a9e..c42b3e5736 100644 --- a/mailpoet/lib/Subscribers/SubscribersRepository.php +++ b/mailpoet/lib/Subscribers/SubscribersRepository.php @@ -432,6 +432,7 @@ class SubscribersRepository extends Repository { ->join('ss.subscriber', 's') ->join('ss.segment', 'seg') ->where('ss.updatedAt > :date') + ->where('ss.createdAt < :date') // ignore those who subscribed and unsubscribed within the date range ->andWhere('s.status = :status') ->andWhere('ss.status = :segment_status') ->andWhere('s.deletedAt IS NULL') diff --git a/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php b/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php index df7d5dcabe..08e72e6e52 100644 --- a/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php +++ b/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php @@ -312,12 +312,13 @@ class HomepageDataControllerTest extends \MailPoetTest { $segment = (new Segment())->withName('Segment')->create(); // Unsubscribed 29 days ago - only this one counts as unsubscribed on list level $newUnsubscribed = (new Subscriber()) - ->withCreatedAt($twentyNineDaysAgo) + ->withCreatedAt($thirtyOneDaysAgo) ->withStatus(SubscriberEntity::STATUS_UNSUBSCRIBED) ->withSegments([$segment]) ->create(); $subscriberSegment = $newUnsubscribed->getSubscriberSegments()->first(); $this->assertInstanceOf(SubscriberSegmentEntity::class, $subscriberSegment); + $subscriberSegment->setCreatedAt($thirtyOneDaysAgo); $subscriberSegment->setUpdatedAt($twentyNineDaysAgo); $subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED); // Unsubscribed 31 days ago - ignored because unsubscribed too far in the past @@ -328,6 +329,7 @@ class HomepageDataControllerTest extends \MailPoetTest { ->create(); $subscriberSegment = $newUnsubscribed->getSubscriberSegments()->first(); $this->assertInstanceOf(SubscriberSegmentEntity::class, $subscriberSegment); + $subscriberSegment->setCreatedAt($thirtyOneDaysAgo); $subscriberSegment->setUpdatedAt($thirtyOneDaysAgo); $subscriberSegment->setStatus(SubscriberEntity::STATUS_UNSUBSCRIBED);