FOX - Currency Switcher for WooCommerce

woocs_add_aggregator_processor

Le filtre woocs_add_aggregator_processor fournit le code qui récupère les taux pour un agrégateur personnalisé. Disponible à partir des versions 2.3.1 / 1.3.1. Il fonctionne avec woocs_announce_aggregator : celui-ci place votre source dans la liste des paramètres, celui-là s'exécute lorsque le propriétaire de la boutique l'a sélectionné et que FOX demande un taux.
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);
Paramètres :
  • $rate - le taux résolu jusqu'à présent
  • $aggregator (string) - l'ID sélectionné dans les paramètres
  • $currency (string) - le code de devise en cours de résolution
Retourne :
  • le taux à stocker
Important : vérifiez toujours d'abord l'ID de l'agrégateur et renvoyez la valeur entrante inchangée si elle n'est pas la vôtre, sinon vous écraserez les taux de toutes les autres sources. Et renvoyez le taux précédent en cas d'échec de la requête plutôt que zéro — un taux nul rend tous les prix de cette devise gratuits.