首页 > 解决方案 > 不能 var_dump 或 echo 变量

问题描述

我有这个功能可以根据重量修改运输方式。

我需要 var_dump 或 echo $rates 才能访问和调节它的某些属性(例如您可以看到的成本)。

add_filter( 'woocommerce_package_rates', 'compoco_wholesale_rates', 10 );
function compoco_wholesale_rates( $rates ) {
    global $woocommerce;
    $base_cost = 0;
    $cart_weight = $woocommerce->cart->get_cart_contents_weight();

    $shipping_price = array('3' => 34, '4' => 42, '5' => 50, '6' => 58, '7' => 66, '8' => 73, '9' => 80, '10' => 88, '11' => 95, '12' => 102, '13' => 107, '14' => 117, '15' => 125, '16' => 132, '17' => 140, '18' => 146, '19' => 153, '20' => 163);
    foreach ( $shipping_price as $key => $value){

        if( round($cart_weight) == $key){
            $base_cost = $value;
        }
    }

    foreach($rates as $key => $rate ) {

        $rate->cost = $base_cost;
    }
        return $rates;
}

尝试输出有问题的 var 时没有任何反应。

标签: phpwordpresswoocommerce

解决方案


你应该使用

echo "<pre>"; print_r($rates); die;

函数内部。

如果这是后端或任何屏幕都无法访问的东西,您可以创建一个文件并将 var 内容放入其中(print_r 中的 true 标志)。

$h = fopen('/var/www/whatever/rates.txt', 'w');
    fwrite($h, print_r($rates, true));
    fclose($h);

请记住,您可以使用https://xdebug.org/来解决此类问题。


推荐阅读