Panduan/Konversi mata uang untuk WooCommerce

Konversi mata uang untuk WooCommerce

Konversi mata uang untuk WooCommerce. Panduan praktis dengan kode, cache, dan metadata kesegaran.

ERexchangerate.dev·Sep 20, 2026·7 menit baca

Terapkan di server tanpa membocorkan kredensial serta simpan sumber dan waktu observasi.

Poin utama
Simpan kunci API hanya di server.
Validasi kode mata uang dan jumlah.
Cache respons yang berhasil.
Tampilkan sumber dan waktu observasi.

Langkah 1

Contoh kodecopy
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;
}

Langkah 2

Jalankan di server, validasi input, dan simpan metadata dari respons.

Contoh kodecopy
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);

Langkah 3

  • Simpan kunci API hanya di server.
  • Validasi kode mata uang dan jumlah.
  • Cache respons yang berhasil.
  • Tampilkan sumber dan waktu observasi.
Panduan
Kurs ini bersifat indikatif, bukan harga penyelesaian.
ER
exchangerate.dev
Panduan praktis bagi pengembang yang menggunakan data mata uang.

Baca selanjutnya

PanduanAPI konverter mata uang untuk pengembangBaca PanduanKonversi mata uang untuk ShopifyBaca PanduanExchange rates for SaaS billingBaca