page_renderer = $page_renderer; $this->settings = $settings; $this->woocommerce_helper = $woocommerce_helper; $this->wp = $wp; $this->services_checker = $services_checker; $this->features_controller = $features_controller; $this->installation = $installation; } function render() { $settings = $this->settings->getAll(); $flags = $this->getFlags(); // force MSS key check even if the method isn't active $mp_api_key_valid = $this->services_checker->isMailPoetAPIKeyValid(false, true); $data = [ 'settings' => $settings, 'segments' => Segment::getSegmentsWithSubscriberCount(), 'cron_trigger' => CronTrigger::getAvailableMethods(), 'total_subscribers' => Subscriber::getTotalSubscribers(), 'premium_plugin_active' => License::getLicense(), 'premium_key_valid' => !empty($this->premium_key_valid), 'mss_active' => Bridge::isMPSendingServiceEnabled(), 'mss_key_valid' => !empty($mp_api_key_valid), 'members_plugin_active' => $this->wp->isPluginActive('members/members.php'), 'pages' => Pages::getAll(), 'flags' => $flags, 'current_user' => $this->wp->wpGetCurrentUser(), 'linux_cron_path' => dirname(dirname(__DIR__)), 'is_woocommerce_active' => $this->woocommerce_helper->isWooCommerceActive(), 'display_revenues' => $this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES), 'ABSPATH' => ABSPATH, 'hosts' => [ 'web' => Hosts::getWebHosts(), 'smtp' => Hosts::getSMTPHosts(), ], ]; $data['is_new_user'] = $this->installation->isNewInstallation(); $data = array_merge($data, Installer::getPremiumStatus()); $this->page_renderer->displayPage('settings.html', $data); } private function getFlags() { // flags (available features on WP install) $flags = []; if ($this->wp->isMultisite()) { // get multisite registration option $registration = $this->wp->applyFilters( 'wpmu_registration_enabled', $this->wp->getSiteOption('registration', 'all') ); // check if users can register $flags['registration_enabled'] = !(in_array($registration, [ 'none', 'blog', ])); } else { // check if users can register $flags['registration_enabled'] = (bool)$this->wp->getOption('users_can_register', false); } return $flags; } }