가이드/WooCommerce 통화 변환

WooCommerce 통화 변환

WooCommerce 통화 변환. 코드, 캐시, 최신성 메타데이터를 포함한 실용 가이드입니다.

ERexchangerate.dev·Sep 20, 2026·7분 분량

자격 증명을 노출하지 않고 서버에서 구현하며 출처와 관측 시각을 보존합니다.

핵심 요점
API 키는 서버에만 보관합니다.
통화 코드와 금액을 검증합니다.
성공한 응답을 캐시합니다.
출처와 관측 시각을 표시합니다.

단계 1

코드 예제copy
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;
}

단계 2

서버에서 실행하고 입력값을 검증하며 응답 메타데이터를 보존하세요.

코드 예제copy
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);

단계 3

  • API 키는 서버에만 보관합니다.
  • 통화 코드와 금액을 검증합니다.
  • 성공한 응답을 캐시합니다.
  • 출처와 관측 시각을 표시합니다.
가이드
이 환율은 참고용이며 결제 가격이 아닙니다.
ER
exchangerate.dev
통화 데이터를 사용하는 개발자를 위한 실용 가이드입니다.

계속 읽기

가이드개발자를 위한 통화 변환 API읽기 가이드Shopify 통화 변환읽기 가이드Exchange rates for SaaS billing읽기