'err_post_id_invalid']); } if (empty($keyword)) { wp_send_json_error(['code' => 'err_keyword_empty']); } $active_license = get_option('aicont_active_license', ''); $active_license = $active_license ? trim(sanitize_text_field($active_license)) : ''; $result = aicont_call_webtinus_server_for_titles([ 'keyword' => $keyword, 'post_id' => $post_id, 'api_key' => $active_license ]); if (is_wp_error($result) || empty($result['titles'])) { $error_code = $result['error_code'] ?? 'err_titles_empty'; wp_send_json_error(['code' => $error_code]); } wp_send_json_success([ 'message' => 'success', 'titles' => $result['titles'], 'count' => count($result['titles']) ]); } function aicont_call_webtinus_server_for_titles($args) { $client_site_url = home_url('', 'https'); $server_url = 'https://webtinus.com/wp-json/aicont/v1/generate_title_suggestion'; $body = wp_json_encode([ 'post_title' => $args['keyword'], 'post_id' => $args['post_id'], 'client_site_url' => $client_site_url, 'api_key' => $args['api_key'] ?? '', 'site_title' => get_bloginfo('name'), 'site_language' => get_locale() ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); $response = wp_remote_post($server_url, [ 'headers' => [ 'Content-Type' => 'application/json', 'X-Client-Site' => $client_site_url, 'User-Agent' => 'AiContify-WordPress-Plugin/1.0' ], 'body' => $body, 'timeout' => 180, 'sslverify' => true ]); if (is_wp_error($response)) { return ['error_code' => 'err_connection_failed']; } $response_code = wp_remote_retrieve_response_code($response); $response_body = wp_remote_retrieve_body($response); $data = json_decode($response_body, true); if ($response_code !== 200 || empty($data['success'])) { $error_code = $data['error_code'] ?? 'err_server_error'; return ['error_code' => $error_code]; } if (empty($data['titles']) || !is_array($data['titles'])) { return ['error_code' => 'err_titles_empty']; } // Sanitize titles $titles = array_map('sanitize_text_field', $data['titles']); return ['titles' => $titles]; }