FOX - Currency Switcher for WooCommerce

woocs_add_aggregator_processor

El filtro woocs_add_aggregator_processor proporciona el código que obtiene las tasas para un agregador personalizado. Disponible desde v.2.3.1 / 1.3.1. Funciona junto con woocs_announce_aggregator: ese pone tu fuente en la lista de ajustes, este se ejecuta cuando el propietario de la tienda lo ha seleccionado y FOX solicita una tasa.
add_filter('woocs_add_aggregator_processor', function ($rate, $aggregator, $currency) {
    if ($aggregator !== 'my_bank') {
        return $rate;   // not ours — leave it alone
    }

    $response = wp_remote_get('https://example.com/api/rate/' . $currency);
    if (is_wp_error($response)) {
        return $rate;   // on failure keep the previous rate
    }

    $data = json_decode(wp_remote_retrieve_body($response), true);

    return isset($data['rate']) ? floatval($data['rate']) : $rate;
}, 10, 3);
Parámetros:
  • $rate - la tasa resuelta hasta ahora
  • $aggregator (cadena) - el id seleccionado en los ajustes
  • $currency (cadena) - el código de moneda que se está resolviendo
Devuelve:
  • la tasa a almacenar
Importante: siempre verifica primero el id del agregador y devuelve el valor entrante sin cambios cuando no sea tuyo, o sobrescribirás las tasas de todas las demás fuentes. Y devuelve la tasa anterior en una solicitud fallida en lugar de cero — una tasa cero hace que cada precio en esa moneda sea gratis.