id, 'aipmsp-settings' ) ) { return; } // Расшифровываем ключи только в память. $openai_key = AIPMSP_Crypto::decrypt( $settings['keys']['openai'] ); $anthropic_key = AIPMSP_Crypto::decrypt( $settings['keys']['anthropic'] ); $google_key = AIPMSP_Crypto::decrypt( $settings['keys']['google'] ); $providers = array( 'OpenAI' => array( 'slug' => 'openai', 'key' => $openai_key, 'url' => 'https://api.openai.com/v1/models', 'headers' => array( 'Authorization' => 'Bearer ' . $openai_key ), ), 'Anthropic' => array( 'slug' => 'anthropic', 'key' => $anthropic_key, 'url' => 'https://api.anthropic.com/v1/models', 'headers' => array( 'x-api-key' => $anthropic_key, 'anthropic-version' => '2023-06-01', ), ), 'Google' => array( 'slug' => 'google', 'key' => $google_key, 'url' => 'https://generativelanguage.googleapis.com/v1beta/models', 'headers' => array( 'x-goog-api-key' => $google_key ), ), ); echo '

' . esc_html__( 'AI Proxy Manager — проверка подключения к AI-провайдерам:', 'ai-proxy-manager' ) . '

'; foreach ( $providers as $name => $cfg ) { // Пропускаем провайдера, если его переключатель проверки выключен — без уведомления. if ( empty( $settings['key_enabled'][ $cfg['slug'] ] ) ) { continue; } // Пропускаем провайдера без ключа. if ( '' === $cfg['key'] ) { echo '
';
				echo esc_html( $name ) . ":\n";
				echo esc_html__( '⏭ Ключ не задан — проверка пропущена', 'ai-proxy-manager' );
				echo '
'; continue; } $response = wp_remote_get( $cfg['url'], array( 'timeout' => 20, 'headers' => $cfg['headers'], ) ); echo '
';
			echo esc_html( $name ) . ":\n";

			if ( is_wp_error( $response ) ) {
				echo esc_html__( '❌ ОШИБКА СОЕДИНЕНИЯ (вероятно прокси или сеть):', 'ai-proxy-manager' ) . "\n";
				echo esc_html( $response->get_error_message() );
			} else {
				$code = (int) wp_remote_retrieve_response_code( $response );
				echo esc_html__( 'HTTP CODE:', 'ai-proxy-manager' ) . ' ' . esc_html( $code ) . "\n";

				if ( 200 === $code ) {
					echo esc_html__( '✅ Соединение успешно установлено', 'ai-proxy-manager' );
				} elseif ( 401 === $code ) {
					echo esc_html__( '❌ Неверный API-ключ', 'ai-proxy-manager' );
				} elseif ( 403 === $code ) {
					echo esc_html__( '❌ Доступ запрещён (регион или IP заблокирован — проверьте прокси)', 'ai-proxy-manager' );
				} elseif ( 429 === $code ) {
					echo esc_html__( '⚠️ Превышен лимит запросов (rate limit)', 'ai-proxy-manager' );
				} else {
					echo esc_html__( '⚠️ Неожиданный код ответа', 'ai-proxy-manager' );
				}
			}

			echo '
'; } } }