نفّذ التكامل على الخادم دون كشف بيانات الاعتماد، واحتفظ بالمصدر ووقت الرصد.
- احتفظ بمفتاح API على الخادم.
- تحقق من رموز العملات والمبالغ.
- خزّن الاستجابات الناجحة مؤقتًا.
- اعرض المصدر ووقت الرصد.
الخطوة 1
مثال برمجي
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
نفّذ هذا النمط على الخادم، وتحقق من المدخلات، واحتفظ ببيانات الاستجابة.
مثال برمجي
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 على الخادم.
- تحقق من رموز العملات والمبالغ.
- خزّن الاستجابات الناجحة مؤقتًا.
- اعرض المصدر ووقت الرصد.
دليل
هذه أسعار إرشادية وليست أسعار تسوية.