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:
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.