register(); $editor_ui->register(); if ( defined( 'WP_CLI' ) && WP_CLI ) { $cli = new AI_Translator_CLI( $settings, $translator ); $cli->register(); } if ( class_exists( 'AI_Translator_MLP_Integration' ) ) { $mlp = new AI_Translator_MLP_Integration( $settings, $translator ); $mlp->register(); } $manager_notice->register(); } add_action( 'plugins_loaded', 'ai_translator_bootstrap' ); /** * Renders an admin notice when no AI provider is configured for text generation. * * `wp_ai_client_prompt()` is part of WordPress 7.0 core, so the function always * exists. The meaningful check is whether a provider capable of text generation has * been configured — which is what `AI_Translator_Translator::is_supported()` tests. * * @since 1.0.0 * * @return void */ function ai_translator_dependency_notice() { if ( ! current_user_can( 'manage_options' ) ) { return; } $translator = new AI_Translator_Translator( new AI_Translator_Settings() ); if ( $translator->is_supported() ) { return; } $settings_url = admin_url( 'options-general.php?page=options-connectors-wp-admin' ); $message = sprintf( /* translators: %s: Link to the WordPress AI settings page. */ esc_html__( 'AI Translator (by ROBOTSTXT) requires a configured AI provider for text generation. Open %s to set one up.', 'robotstxt-ai-translator' ), '' . esc_html__( 'Settings → AI', 'robotstxt-ai-translator' ) . '' ); printf( '

%s

', wp_kses( $message, array( 'a' => array( 'href' => array(), ), ) ) ); } add_action( 'admin_notices', 'ai_translator_dependency_notice' ); add_action( 'network_admin_notices', 'ai_translator_dependency_notice' );