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

WooCommerce感谢页添加自定义动态二维码失败求助

WooCommerce感谢页动态二维码不显示的排查方案
  • 先确认订单变量是否有效
    在thankyou.php里,先确保能正确获取订单对象和所需字段:

    // 获取当前订单对象
    $order = wc_get_order( $order_id );
    if ( ! $order ) return;
    
    // 调试输出订单号和小计,确认变量有值
    echo '订单号:' . $order->get_order_number();
    echo '小计金额:' . $order->get_subtotal();
    

    如果这些内容能正常显示,说明变量没问题;如果没输出,检查$order_id是否正确传递,或者订单对象是否获取失败。

  • 验证Paylibo API请求URL的正确性
    把订单变量正确拼接并编码到API URL中,避免特殊字符导致请求失败:

    $amount = $order->get_subtotal();
    $order_number = $order->get_order_number();
    // 替换为实际的Paylibo API地址,注意参数是否符合要求
    $qr_api_url = "https://api.paylibo.com/qr?amount=" . urlencode($amount) . "&order_id=" . urlencode($order_number);
    // 调试输出完整URL,复制到浏览器直接访问看是否返回二维码
    echo 'QR API地址:' . $qr_api_url;
    

    如果直接访问URL能显示二维码,说明API请求没问题;如果不能,检查API参数是否正确(比如金额格式、是否需要额外的密钥参数)。

  • 检查img标签的写法是否规范
    使用esc_url()确保URL安全,避免XSS风险,同时保证标签格式正确:

    <img src="<?php echo esc_url($qr_api_url); ?>" alt="支付二维码" width="200" height="200">
    

    打开浏览器开发者工具(F12),切换到「网络」标签,刷新页面后查看img的请求状态:

    • 如果是404:URL错误,检查API地址和参数
    • 如果是401/403:API权限不足,确认是否需要添加密钥等认证参数
    • 如果是200但不显示:可能返回的不是图片格式,检查API响应类型
  • 确认自定义模板路径正确
    确保thankyou.php放在主题目录的正确位置:wp-content/themes/你的主题名称/woocommerce/checkout/thankyou.php,路径错误的话WooCommerce会默认使用插件里的模板,你的修改不会生效。

  • 清除缓存排除干扰
    清空网站缓存(比如WP Rocket、W3 Total Cache等插件的缓存)和浏览器缓存,刷新感谢页再次测试,避免缓存导致页面未更新。

  • 排查API请求限制
    检查Paylibo API的调用频率限制、地域限制,或者是否需要在后台配置允许你的网站域名访问,这些都可能导致API无法返回图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:25:07