Panduan/Konversi mata uang untuk WooCommerce Konversi mata uang untuk WooCommerce
Konversi mata uang untuk WooCommerce. Panduan praktis dengan kode, cache, dan metadata kesegaran.
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.
ERexchangerate.devPanduan praktis bagi pengembang yang menggunakan data mata uang.