You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于blockchain.com URL实现USD转BTC自动换算报错求助

问题解决:修复BTC价格显示的非数值错误

错误原因

你当前的代码里,$btc_conversion_rate变量仅存储了API的URL字符串,并未实际发起请求获取返回的汇率数值。直接用字符串和价格做除法运算,会触发"非数值类型"警告,导致计算失败。

修正后的代码

function manual_currency_conversion( $price ) {
    // 发起请求获取1美元对应的BTC汇率
    $btc_conversion_rate = file_get_contents("https://www.blockchain.com/tobtc?currency=USD&value=1");
    
    // 处理请求失败或返回非数值的情况
    if ( !is_numeric($btc_conversion_rate) || (float)$btc_conversion_rate <= 0 ) {
        return 'N/A'; // 请求失败时显示占位符
    }
    
    // 计算商品价格对应的BTC金额:价格(美元) × 1美元兑换的BTC数量
    $btc_price = (float)$price * (float)$btc_conversion_rate;

    return number_format( $btc_price, 8, '.', '' );
}
    
add_filter( 'wc_price', 'btc_additional_currency', 10, 5 );
function btc_additional_currency( $return, $price, $args, $unformatted_price, $original_price = null ) {
    $display_btc_price = manual_currency_conversion( $price );
    $btc_currency = '₿';
    $display_btc_price = $btc_currency . $display_btc_price;
    $btc_price_on_product_page = '<small><span class="btc-price"> ( ' . $display_btc_price . ' ) </small></span>';

    return $return . $btc_price_on_product_page;
}

关键改动说明

  • 添加API请求逻辑:用file_get_contents()获取blockchain.com返回的汇率数值,而非直接使用URL字符串。
  • 增加异常处理:判断请求返回内容是否为有效数值,避免因API请求失败引发后续错误。
  • 修正计算逻辑:原代码除法逻辑错误,正确计算应为「商品美元价格 × 1美元兑换的BTC数量」,得到对应BTC金额。

替代方案(若服务器禁用file_get_contents)

如果服务器限制了file_get_contents(),可改用curl方式请求API:

function get_btc_conversion_rate() {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://www.blockchain.com/tobtc?currency=USD&value=1");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    $rate = curl_exec($ch);
    curl_close($ch);
    return $rate;
}

// 在manual_currency_conversion函数中替换请求部分:
$btc_conversion_rate = get_btc_conversion_rate();

内容的提问来源于stack exchange,提问作者Learning WooStoreFront

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:48:29