site_key_exists() ? $this->createServicesListRenderer() : partial( NoSiteKeyTemplate::class . '::render', $this->getTemplateRenderer() ) ); } /** * @return bool|string */ private function site_key_exists() { $site_key = false; if ( class_exists( 'WP_Installer' ) ) { $repository_id = 'wpml'; $site_key = \WP_Installer()->get_site_key( $repository_id ); } return $site_key; } /** * @param \WPML_Twig_Template_Loader $twig_loader * @param \WPML_TP_Client $tp_client * * @return callable */ private function createServicesListRenderer() { /** * Section: "Partner services", "Other services" and "Translation Management Services" */ $getServicesTabs = partial( ServicesRetriever::class . '::get', $this->getTpApiServices(), Geolocalization::getCountryByIp( Http::post() ), partialRight( [ ServiceMapper::class, 'map' ], [ ActiveServiceRepository::class, 'getId' ] ) ); return partial( MainLayoutTemplate::class . '::render', $this->getTemplateRenderer(), ActiveServiceTemplateFactory::createRenderer(), \TranslationProxy::has_preferred_translation_service(), $getServicesTabs ); } /** * @return callable */ private function getTemplateRenderer() { $template = make( \WPML_Twig_Template_Loader::class, [ ':paths' => [ WPML_TM_PATH . '/templates/menus/translation-services/', WPML_PLUGIN_PATH . '/templates/pagination/', ], ] )->get_template(); return [ $template, 'show' ]; } /** * @return \WPML_TP_API_Services */ private function getTpApiServices() { return make( \WPML_TP_Client_Factory::class )->create()->services(); } }