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

无法var_dump或echo变量:需调试WooCommerce运费函数中的$rates变量

解决WooCommerce中无法输出$rates变量的问题

我来帮你搞定这个问题!在WooCommerce里调试woocommerce_package_rates过滤器的$rates变量确实有点 tricky——因为它的执行上下文通常是后台/ajax请求,直接用echo或var_dump要么看不到输出,要么会破坏响应格式,导致配送方式加载失败。下面给你几个靠谱的调试方案:

方案1:用PHP错误日志输出(最安全)

这种方法不会影响前端页面,还能完整看到$rates的结构,适合生产环境临时调试。

修改你的函数如下:

add_filter( 'woocommerce_package_rates', 'compoco_wholesale_rates', 10 );
function compoco_wholesale_rates( $rates ) {
    // 把$rates的内容写入PHP错误日志
    error_log( print_r( $rates, true ) );

    global $woocommerce;
    $base_cost = 0;
    $cart_weight = $woocommerce->cart->get_cart_contents_weight();
    // 补全你的shipping_price数组
    $shipping_price = array('3' => 34, '4' => 42, '5' => 50, '6' => 58);

    // 这里继续你的重量判断逻辑...

    // !!重要:必须返回$rates,否则所有配送方式都会消失
    return $rates;
}

之后你可以:

  • 查看服务器的PHP error_log文件(位置取决于你的主机配置)
  • 如果开启了WordPress的调试模式(在wp-config.php里设置WP_DEBUG_LOG = true),日志会写入wp-content/debug.log

方案2:在前端页面显示调试信息(仅测试环境用)

如果你想直接在页面上看到输出,可以用WooCommerce的通知功能,配合输出缓冲避免破坏页面结构:

add_filter( 'woocommerce_package_rates', 'compoco_wholesale_rates', 10 );
function compoco_wholesale_rates( $rates ) {
    // 开启输出缓冲,捕获var_dump的内容
    ob_start();
    echo '<pre>'; // 格式化输出,方便阅读
    var_dump( $rates );
    echo '</pre>';
    $debug_content = ob_get_clean();

    // 把调试内容添加为WooCommerce通知
    wc_add_notice( $debug_content, 'notice' );

    global $woocommerce;
    $base_cost = 0;
    $cart_weight = $woocommerce->cart->get_cart_contents_weight();
    $shipping_price = array('3' => 34, '4' => 42, '5' => 50, '6' => 58);

    // 你的逻辑...

    return $rates;
}

调试必看注意事项

  1. 必须返回$rates:如果忘记返回这个变量,WooCommerce会丢失所有配送方式,这是新手常犯的错误!
  2. 清除配送缓存:WooCommerce会缓存配送费率,修改代码后记得在WooCommerce后台的「设置→配送」里随便保存一下设置,或者清空浏览器缓存,否则你的修改可能不生效。
  3. 推荐用WC()->cart代替global:现在WooCommerce更推荐用WC()->cart->get_cart_contents_weight()代替global $woocommerce的写法,更符合最新规范。
  4. 测试后移除调试代码:调试完成后一定要删掉error_log或wc_add_notice相关的代码,避免泄露敏感信息或影响用户体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:50:34