pageRenderer = $pageRenderer; $this->listingPageLimit = $listingPageLimit; $this->subscribersFeature = $subscribersFeature; $this->wp = $wp; $this->dateBlock = $dateBlock; $this->servicesChecker = $servicesChecker; $this->dynamicSegmentsLoader = $dynamicSegmentsLoader; } public function render() { $data = []; $data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('subscribers'); $segments = Segment::getSegmentsWithSubscriberCount($type = false); $segments = $this->dynamicSegmentsLoader->add($segments); usort($segments, function ($a, $b) { return strcasecmp($a["name"], $b["name"]); }); $data['segments'] = $segments; $data['custom_fields'] = array_map(function($field) { $field['params'] = unserialize($field['params']); if (!empty($field['params']['values'])) { $values = []; foreach ($field['params']['values'] as $value) { $values[$value['value']] = $value['value']; } $field['params']['values'] = $values; } return $field; }, CustomField::findArray()); $data['date_formats'] = $this->dateBlock->getDateFormats(); $data['month_names'] = $this->dateBlock->getMonthNames(); $data['premium_plugin_active'] = License::getLicense(); $data['mss_active'] = Bridge::isMPSendingServiceEnabled(); $data['mss_key_invalid'] = ($this->servicesChecker->isMailPoetAPIKeyValid() === false); $data['max_confirmation_emails'] = ConfirmationEmailMailer::MAX_CONFIRMATION_EMAILS; $data['subscribers_limit'] = $this->subscribersFeature->getSubscribersLimit(); $data['subscribers_limit_reached'] = $this->subscribersFeature->check(); $data['has_valid_api_key'] = $this->subscribersFeature->hasValidApiKey(); $data['subscriber_count'] = $this->subscribersFeature->getSubscribersCount(); $data['has_premium_support'] = $this->subscribersFeature->hasPremiumSupport(); $data['link_premium'] = $this->wp->getSiteUrl(null, '/wp-admin/admin.php?page=mailpoet-premium'); $data['wp_users_count'] = false; if (!$data['has_premium_support']) { $wpSegment = Segment::getWPSegment()->withSubscribersCount(); $subscribersCount = $wpSegment->subscribersCount; $data['wp_users_count'] = $subscribersCount[Subscriber::STATUS_SUBSCRIBED] + $subscribersCount[Subscriber::STATUS_UNCONFIRMED] + $subscribersCount[Subscriber::STATUS_INACTIVE]; } $this->pageRenderer->displayPage('subscribers/subscribers.html', $data); } }