function ie_gui_get_data() {
    $cache_key = 'ie_gui_market_data_v4';
    $cached = get_transient($cache_key);
    if ($cached !== false) return $cached;

    $api_key = 'TU_API_KEY_AQUI'; 

    $indicators = [
        'USD/UYU' => "https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=UYU&apikey={$api_key}",
        'BRENT'   => "https://www.alphavantage.co/query?function=BRENT&apikey={$api_key}",
        'WTI'     => "https://www.alphavantage.co/query?function=WTI&apikey={$api_key}",
        'SOJA'    => "https://www.alphavantage.co/query?function=SOYBEAN&apikey={$api_key}",
        'MAÍZ'    => "https://www.alphavantage.co/query?function=CORN&apikey={$api_key}",
        'TRIGO'   => "https://www.alphavantage.co/query?function=WHEAT&apikey={$api_key}"
    ];

    $results = [];

    foreach ($indicators as $label => $url) {
        $body = ie_gui_fetch_json($url);
        $current = null;

        if ($body) {
            if ($label === 'USD/UYU' && isset($body['Realtime Currency Exchange Rate'])) {
                $current = $body['Realtime Currency Exchange Rate']['5. Exchange Rate'];
            } elseif (isset($body['data'][0]['value'])) {
                $current = $body['data'][0]['value'];
            }
        }

        // Si la API falla (N/D), intentamos recuperar el último valor que funcionó alguna vez
        if (!$current || $current == '.' || $current == 'N/A') {
            $last_saved = get_option('ie_gui_last_val_' . md5($label));
            $results[$label] = [
                'val' => $last_saved ? ie_gui_safe_number($last_saved) : '...',
                'trend' => 'up'
            ];
        } else {
            // Si la API responde bien, actualizamos la base de datos
            update_option('ie_gui_last_val_' . md5($label), $current);
            $results[$label] = [
                'val' => ie_gui_safe_number($current),
                'trend' => 'up' // Aquí podrías añadir la lógica de comparación si fuera necesario
            ];
        }

        // ESPERA CRÍTICA: Pausa de 15 segundos entre CADA petición para no saturar la API gratuita
        // Nota: Esto solo pasará una vez cada 30 minutos gracias al cache.
        sleep(15); 
    }

    set_transient($cache_key, $results, 1800);
    return $results;
}