diff --git a/lib/Models/Subscriber.php b/lib/Models/Subscriber.php index bf2b12c3c7..c9c36afff5 100644 --- a/lib/Models/Subscriber.php +++ b/lib/Models/Subscriber.php @@ -221,42 +221,51 @@ class Subscriber extends Model { return $orm; } - public static function groups() { + private static function updateGroupsQuery($data, $query) { + $wpSegment = Segment::getWPSegment(); + if (isset($data['filter']['segment']) && $data['filter']['segment'] === $wpSegment->id) { + return $query; + } + $query->whereNull('wp_user_id'); + return $query; + } + + public static function groups($data) { return [ [ 'name' => 'all', 'label' => WPFunctions::get()->__('All', 'mailpoet'), - 'count' => self::getPublished()->count(), + 'count' => self::updateGroupsQuery($data, self::getPublished())->count(), ], [ 'name' => self::STATUS_SUBSCRIBED, 'label' => WPFunctions::get()->__('Subscribed', 'mailpoet'), - 'count' => self::filter(self::STATUS_SUBSCRIBED)->count(), + 'count' => self::updateGroupsQuery($data, self::filter(self::STATUS_SUBSCRIBED))->count(), ], [ 'name' => self::STATUS_UNCONFIRMED, 'label' => WPFunctions::get()->__('Unconfirmed', 'mailpoet'), - 'count' => self::filter(self::STATUS_UNCONFIRMED)->count(), + 'count' => self::updateGroupsQuery($data, self::filter(self::STATUS_UNCONFIRMED))->count(), ], [ 'name' => self::STATUS_UNSUBSCRIBED, 'label' => WPFunctions::get()->__('Unsubscribed', 'mailpoet'), - 'count' => self::filter(self::STATUS_UNSUBSCRIBED)->count(), + 'count' => self::updateGroupsQuery($data, self::filter(self::STATUS_UNSUBSCRIBED))->count(), ], [ 'name' => self::STATUS_INACTIVE, 'label' => WPFunctions::get()->__('Inactive', 'mailpoet'), - 'count' => self::filter(self::STATUS_INACTIVE)->count(), + 'count' => self::updateGroupsQuery($data, self::filter(self::STATUS_INACTIVE))->count(), ], [ 'name' => self::STATUS_BOUNCED, 'label' => WPFunctions::get()->__('Bounced', 'mailpoet'), - 'count' => self::filter(self::STATUS_BOUNCED)->count(), + 'count' => self::updateGroupsQuery($data, self::filter(self::STATUS_BOUNCED))->count(), ], [ 'name' => 'trash', 'label' => WPFunctions::get()->__('Trash', 'mailpoet'), - 'count' => self::getTrashed()->count(), + 'count' => self::updateGroupsQuery($data, self::getTrashed())->count(), ], ]; }