Inpsyde\MultilingualPress\Module\UserAdminLanguage\ServiceProvider::bootstrap PHP Method

bootstrap() public method

Bootstraps the registered services.
Since: 3.0.0
public bootstrap ( Inpsyde\MultilingualPress\Service\Container $container ) : void
$container Inpsyde\MultilingualPress\Service\Container Container object.
return void
    public function bootstrap(Container $container)
    {
        if (!is_admin()) {
            return;
        }
        $this->on_activation(function () use($container) {
            $asset_manager = $container['multilingualpress.asset_manager'];
            $locale_filter = $container['multilingualpress.user_admin_language_locale_filter'];
            $locale_filter->enable();
            add_action('admin_head-options-general.php', function () use($asset_manager, $locale_filter) {
                unset($GLOBALS['locale']);
                $locale_filter->disable();
                $unfiltered_locale = get_locale();
                $locale_filter->enable();
                $asset_manager->enqueue_script_with_data('multilingualpress-admin', 'mlpUserBackEndLanguageSettings', ['locale' => 'en_US' === $unfiltered_locale ? '' : esc_js($unfiltered_locale)]);
            });
            // This nonce is not accessible via the container because it is used no matter what by static parties.
            $nonce = new WPNonce('save_user_admin_language_setting');
            (new UserSetting(new Setting(LanguageRepository::META_KEY, $nonce, $container['multilingualpress.user_admin_language_repository']), new SecureUserSettingUpdater(LanguageRepository::META_KEY, $nonce)))->register();
        });
    }