Fix count returned from shortcode mailpoet_subscribers_count

[MAILPOET-3424]
This commit is contained in:
Jan Lysý
2021-03-04 12:13:56 +01:00
committed by Veljko V
parent abdcbb245a
commit fb68f1a7d8
2 changed files with 40 additions and 6 deletions

View File

@ -2,11 +2,12 @@
namespace MailPoet\Config;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Form\Widget;
use MailPoet\Models\Newsletter;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoet\Segments\SegmentSubscribersRepository;
use MailPoet\Subscription\Pages;
use MailPoet\WP\Functions as WPFunctions;
@ -17,9 +18,17 @@ class Shortcodes {
/** @var WPFunctions */
private $wp;
public function __construct(Pages $subscriptionPages, WPFunctions $wp) {
/** @var SegmentSubscribersRepository */
private $segmentSubscribersRepository;
public function __construct(
Pages $subscriptionPages,
WPFunctions $wp,
SegmentSubscribersRepository $segmentSubscribersRepository
) {
$this->subscriptionPages = $subscriptionPages;
$this->wp = $wp;
$this->segmentSubscribersRepository = $segmentSubscribersRepository;
}
public function init() {
@ -75,10 +84,7 @@ class Shortcodes {
return $this->wp->numberFormatI18n(Subscriber::filter('subscribed')->count());
} else {
return $this->wp->numberFormatI18n(
SubscriberSegment::whereIn('segment_id', $segmentIds)
->select('subscriber_id')->distinct()
->filter('subscribed')
->findResultSet()->count()
$this->segmentSubscribersRepository->getSubscribersCountBySegmentIds($segmentIds, SubscriberEntity::STATUS_SUBSCRIBED)
);
}
}