towire(\MailPoet\Form\FormMessageController::class)->setPublic(true); $container->autowire(\MailPoet\Form\FormSaveController::class)->setPublic(true); $container->autowire(\MailPoet\Form\Listing\FormListingRepository::class)->setPublic(true); $container->autowire(\MailPoet\Form\PreviewPage::class); $container->autowire(\MailPoet\Form\Templates\TemplateRepository::class); $container->autowire(\MailPoet\Form\Util\Styles::class); $container->autowire(\MailPoet\Form\Util\CustomFonts::class)->setPublic(true); // Helpscout $container->autowire(\MailPoet\Helpscout\Beacon::class)->setPublic(true); // Listing $container->autowire(\MailPoet\Listing\Handler::class)->setPublic(true); $container->autowire(\MailPoet\Listing\PageLimit::class)->setPublic(true); // Logging $container->autowire(\MailPoet\Logging\LoggerFactory::class); $container->autowire(\MailPoet\Logging\LogRepository::class)->setPublic(true); // Notices $container->autowire(\MailPoet\Util\Notices\PermanentNotices::class); //Referrals $container->autowire(\MailPoet\Referrals\ReferralDetector::class); // Router $container->autowire(\MailPoet\Router\Endpoints\CronDaemon::class)->setPublic(true); $container->autowire(\MailPoet\Router\Endpoints\FormPreview::class)->setPublic(true); $container->autowire(\MailPoet\Router\Endpoints\Subscription::class)->setPublic(true); $container->autowire(\MailPoet\Router\Endpoints\ViewInBrowser::class)->setPublic(true); $container->autowire(\MailPoet\Router\Endpoints\Track::class)->setPublic(true); // Statistics $container->autowire(\MailPoet\Statistics\Track\Clicks::class); $container->autowire(\MailPoet\Statistics\Track\Opens::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\Track\PageViewCookie::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\Track\SubscriberActivityTracker::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\Track\SubscriberCookie::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\Track\SubscriberHandler::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\Track\WooCommercePurchases::class); $container->autowire(\MailPoet\Statistics\Track\Unsubscribes::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\StatisticsFormsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\StatisticsBouncesRepository::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\StatisticsClicksRepository::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\StatisticsOpensRepository::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\StatisticsUnsubscribesRepository::class); $container->autowire(\MailPoet\Statistics\StatisticsWooCommercePurchasesRepository::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\UserAgentsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Router\Router::class) ->setArgument('$container', new Reference(ContainerWrapper::class)); // Mailer $container->autowire(\MailPoet\Mailer\MailerFactory::class)->setPublic(true); $container->autowire(\MailPoet\Mailer\WordPress\WordpressMailerReplacer::class); $container->autowire(\MailPoet\Mailer\Methods\Common\BlacklistCheck::class); $container->autowire(\MailPoet\Mailer\MetaInfo::class); $container->autowire(\MailPoet\Mailer\Methods\ErrorMappers\MailPoetMapper::class)->setPublic(true); // Subscribers $container->autowire(\MailPoet\Subscribers\NewSubscriberNotificationMailer::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\ConfirmationEmailMailer::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\RequiredCustomFieldValidator::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberActions::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscribersEmailCountsController::class); $container->autowire(\MailPoet\Subscribers\InactiveSubscribersController::class); $container->autowire(\MailPoet\Subscribers\LinkTokens::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscribersRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberIPsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberListingRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberSegmentRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberTagRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberCustomFieldRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberPersonalDataEraser::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberSaveController::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\SubscriberSubscribeController::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\ImportExport\ImportExportRepository::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\ImportExport\PersonalDataExporters\NewslettersExporter::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\ImportExport\PersonalDataExporters\NewsletterOpensExporter::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\ImportExport\PersonalDataExporters\NewsletterClicksExporter::class)->setPublic(true); $container->autowire(\MailPoet\Subscribers\Statistics\SubscriberStatisticsRepository::class); $container->autowire(\MailPoet\Subscribers\SubscribersCountsController::class)->setPublic(true); // Segments $container->autowire(\MailPoet\Segments\WooCommerce::class)->setPublic(true); $container->autowire(\MailPoet\Segments\WP::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SubscribersFinder::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SegmentsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SegmentSubscribersRepository::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SegmentListingRepository::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SegmentsSimpleListRepository::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SegmentSaveController::class)->setPublic(true); $container->autowire(\MailPoet\Segments\SegmentDependencyValidator::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\DynamicSegmentsListingRepository::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\FilterFactory::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\FilterHandler::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\DynamicSegmentFilterRepository::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailAction::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailActionClickAny::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailOpensAbsoluteCountAction::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\MailPoetCustomFields::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\SubscriberScore::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\SubscriberSubscribedDate::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\SubscriberSegment::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\SubscriberTag::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\UserRole::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceCategory::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceCountry::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceMembership::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceNumberOfOrders::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceProduct::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceTotalSpent::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\Filters\WooCommerceSubscription::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\SegmentSaveController::class)->setPublic(true); $container->autowire(\MailPoet\Segments\DynamicSegments\FilterDataMapper::class)->setPublic(true); // Services $container->autowire(\MailPoet\Services\Bridge::class)->setPublic(true); $container->autowire(\MailPoet\Services\AuthorizedEmailsController::class)->setPublic(true); $container->autowire(\MailPoet\Services\CongratulatoryMssEmailController::class)->setPublic(true); // Tasks $container->autowire(\MailPoet\Tasks\State::class); // Settings $container->autowire(\MailPoet\Settings\SettingsController::class)->setPublic(true); $container->autowire(\MailPoet\Settings\SettingsChangeHandler::class)->setPublic(true); $container->autowire(\MailPoet\Settings\SettingsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Settings\TrackingConfig::class)->setPublic(true); // User Flags $container->autowire(\MailPoet\Settings\UserFlagsController::class); $container->autowire(\MailPoet\Settings\UserFlagsRepository::class)->setPublic(true); // Subscription $container->autowire(\MailPoet\Subscription\Captcha::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\CaptchaRenderer::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\CaptchaSession::class); $container->autowire(\MailPoet\Subscription\Comment::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\Form::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\Manage::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\ManageSubscriptionFormRenderer::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\Pages::class)->setPublic(true) ->setShared(false); // Get a new instance each time $container->get() is called, needed for tests $container->autowire(\MailPoet\Subscription\Registration::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\Throttling::class)->setPublic(true); $container->autowire(\MailPoet\Subscription\SubscriptionUrlFactory::class)->setPublic(true); // Newsletter $container->autowire(\MailPoet\Newsletter\ApiDataSanitizer::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\AutomatedLatestContent::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\NewsletterSaveController::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\NewsletterPostsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\NewslettersRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\AutomaticEmailsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\NewsletterHtmlSanitizer::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Url::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\NewsletterValidator::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Links\Links::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Listing\NewsletterListingRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Options\NewsletterOptionsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Options\NewsletterOptionFieldsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Preview\SendPreviewController::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Button::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Divider::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Footer::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Header::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Image::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Placeholder::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Renderer::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Social::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Spacer::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Text::class); $container->autowire(\MailPoet\Newsletter\Renderer\Columns\Renderer::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Preprocessor::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Renderer::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Segment\NewsletterSegmentRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\ShortcodesHelper::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\Shortcodes::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Date::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Link::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Newsletter::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Subscriber::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\AutomaticEmailScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\AutomationEmailScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\WelcomeScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\PostNotificationScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Scheduler\ReEngagementScheduler::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Sending\ScheduledTasksRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Sending\ScheduledTaskSubscribersRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Sending\ScheduledTaskSubscribersListingRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Sending\SendingQueuesRepository::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\ViewInBrowser\ViewInBrowserController::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\ViewInBrowser\ViewInBrowserRenderer::class)->setPublic(true); $container->autowire(\MailPoet\Statistics\GATracking::class)->setPublic(true); // Newsletter templates $container->autowire(\MailPoet\NewsletterTemplates\NewsletterTemplatesRepository::class)->setPublic(true); $container->autowire(\MailPoet\NewsletterTemplates\ThumbnailSaver::class)->setPublic(true); // Util $container->autowire(\MailPoet\Util\Cookies::class); $container->autowire(\MailPoet\Util\DBCollationChecker::class); $container->autowire(\MailPoet\Util\Url::class)->setPublic(true); $container->autowire(\MailPoet\Util\Installation::class); $container->autowire(\MailPoet\Util\Security::class); $container->autowire(\MailPoet\Util\License\Features\Subscribers::class)->setPublic(true); $container->autowire(\MailPoet\Util\License\License::class)->setPublic(true); $container->register(\MailPoet\Util\CdnAssetUrl::class) ->setPublic(true) ->setFactory([__CLASS__, 'getCdnAssetsUrl']); $container->autowire(\MailPoet\Newsletter\Scheduler\Scheduler::class)->setPublic(true); // Validator $container->autowire(Validator::class)->setPublic(true); // WooCommerce $container->autowire(\MailPoet\WooCommerce\Helper::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\Settings::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\SubscriberEngagement::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\Subscription::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\TransactionalEmailHooks::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\TransactionalEmails::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\TransactionalEmails\Template::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\TransactionalEmails\Renderer::class)->setPublic(true); $container->autowire(\MailPoet\WooCommerce\TransactionalEmails\ContentPreprocessor::class)->setPublic(true); // WordPress $container->autowire(\MailPoet\WP\Emoji::class)->setPublic(true); $container->autowire(\MailPoet\WP\Functions::class)->setPublic(true); $container->autowire(\MailPoet\WP\AutocompletePostListLoader::class)->setPublic(true); // Third party classes $container->autowire(\MailPoetVendor\CSS::class)->setClass(\MailPoetVendor\CSS::class)->setPublic(true); $container->autowire(\MailPoetVendor\csstidy::class)->setClass(\MailPoetVendor\csstidy::class); // Cache $container->autowire(\MailPoet\Cache\TransientCache::class)->setPublic(true); // Tags $container->autowire(\MailPoet\Tags\TagRepository::class)->setPublic(true); return $container; } /** * @phpcsSuppress SlevomatCodingStandard.Classes.UnusedPrivateElements */ private function registerPremiumService(ContainerBuilder $container, $id) { $container->register($id) ->setPublic(true) ->addArgument($id) ->addArgument(new Reference('service_container')) ->setFactory([ self::class, 'getPremiumService', ]); } public static function getPremiumService($id, ContainerInterface $container = null) { if ($container === null) { return null; } if (!$container->has(IContainerConfigurator::PREMIUM_CONTAINER_SERVICE_SLUG)) { return null; } return $container->get(IContainerConfigurator::PREMIUM_CONTAINER_SERVICE_SLUG)->get($id); } public static function getCdnAssetsUrl(): \MailPoet\Util\CdnAssetUrl { return new \MailPoet\Util\CdnAssetUrl((string)Env::$baseUrl); } }