Poradnik/Przeliczanie walut w WooCommerce

Przeliczanie walut w WooCommerce

Przeliczanie walut w WooCommerce. Praktyczny poradnik z kodem, pamięcią podręczną i metadanymi świeżości.

ERexchangerate.dev·Sep 20, 2026·7 min czytania

Wdrażaj po stronie serwera bez ujawniania danych dostępowych i zachowuj źródło oraz czas obserwacji.

Najważniejsze punkty
Klucz API przechowuj na serwerze.
Waliduj kody walut i kwoty.
Buforuj poprawne odpowiedzi.
Pokazuj źródło i czas obserwacji.

Krok 1

Przykład koducopy
function exr_convert_for_display($amount, $from, $to) {
    $from = strtoupper(sanitize_text_field($from));
    $to = strtoupper(sanitize_text_field($to));
    $cache_key = 'exr_' . md5($from . '_' . $to);
    $rate = get_transient($cache_key);

    if ($rate === false) {
        $url = sprintf('https://api.exchangerate.dev/v1/convert/%s/%s/1', $from, $to);
        $response = wp_remote_get($url, array(
            'timeout' => 5,
            'headers' => array('Authorization' => 'Bearer ' . EXCHANGERATE_API_KEY),
        ));
        if (is_wp_error($response) || wp_remote_retrieve_response_code($response) !== 200) {
            return null;
        }
        $body = json_decode(wp_remote_retrieve_body($response), true);
        $rate = isset($body['rate']) ? (string) $body['rate'] : null;
        if ($rate === null) return null;
        set_transient($cache_key, $rate, MINUTE_IN_SECONDS);
    }

    return (float) $amount * (float) $rate;
}

Krok 2

Uruchamiaj na serwerze, waliduj dane wejściowe i zachowuj metadane odpowiedzi.

Przykład koducopy
add_filter('woocommerce_get_price_html', function ($html, $product) {
    $estimate = exr_convert_for_display((float) $product->get_price(), 'USD', 'EUR');
    if ($estimate === null) return $html;
    return $html . '<small class="fx-estimate">Estimated ' .
        wp_kses_post(wc_price($estimate, array('currency' => 'EUR'))) . '</small>';
}, 10, 2);

Krok 3

  • Klucz API przechowuj na serwerze.
  • Waliduj kody walut i kwoty.
  • Buforuj poprawne odpowiedzi.
  • Pokazuj źródło i czas obserwacji.
Poradnik
Kursy są orientacyjne i nie są cenami rozliczeniowymi.
ER
exchangerate.dev
Praktyczne poradniki integracji danych walutowych.

Czytaj dalej

PoradnikAPI przeliczania walut dla programistówCzytaj PoradnikPrzeliczanie walut w ShopifyCzytaj PoradnikExchange rates for SaaS billingCzytaj