FOX - Currency Switcher for WooCommerce

woocs_add_aggregator_processor

Der Filter woocs_add_aggregator_processor stellt den Code bereit, der Wechselkurse für einen benutzerdefinierten Aggregator abruft. Verfügbar ab Version 2.3.1 / 1.3.1. Er arbeitet mit woocs_announce_aggregator zusammen: Dieser fügt Ihre Quelle zur Liste der Einstellungen hinzu, dieser Filter wird ausgeführt, wenn der Shop-Betreiber sie ausgewählt hat und FOX einen Wechselkurs anfordert.
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);
Parameter:
  • $rate - der bisher ermittelte Wechselkurs
  • $aggregator (string) - die in den Einstellungen ausgewählte ID
  • $currency (string) - der zu ermittelnde Währungscode
Rückgabewert:
  • der zu speichernde Wechselkurs
Wichtig: Überprüfen Sie immer zuerst die Aggregator-ID und geben Sie den eingehenden Wert unverändert zurück, wenn er nicht zu Ihrem Aggregator gehört. Andernfalls überschreiben Sie die Kurse aller anderen Quellen. Geben Sie bei einer fehlgeschlagenen Anfrage den vorherigen Wechselkurs zurück, nicht Null – ein Kurs von Null macht jeden Preis in dieser Währung kostenlos.