Wordpress print_r 或从钩子回调中回显

问题描述 投票:0回答:2

我想调试下面的一个函数。 print_r 和 echo 都没有显示任何内容。 如何打印以下内容: $order 或 $paypal_args ?

function custom_override_paypal_email1( $paypal_args, $order ) {
    print_r($paypal_args);
    print_r($order);
    // die();
    global $woocommerce;

    foreach ( $order->get_items() as $product ) {
            $terms = get_the_terms($product['product_id'],'product_cat');
            if (!is_null($terms)){
                    if(count($terms)>0)
                    {
                        //get first one
                    $term = $terms[0];

                 if(strtolower($catName)==='ethics'){
                         $paypal_args['business'] = "[email protected]";
                     }
                     else{
                        // $t = strval($term);
                        $paypal_args['business'] = $t ."[email protected]";
                     }
                }
            }
        //  break;
        }
//      $woocommerce->add_error( sprintf( "You must add a minimum of %s %s's to your cart to proceed." , 1, "T" ) );
    return $paypal_args;
}
add_filter( 'woocommerce_paypal_args' , 'custom_override_paypal_email1', 10, 2  ); 

每当我运行该函数时,我都会收到以下 woocommerce 通知:

SyntaxError: Unexpected token m in JSON at position 0
php wordpress woocommerce
2个回答
4
投票

由于您正在执行 Ajax 请求,因此响应不会显示在页面上。

echo
print_r()
功能正在运行,但为了查看 Ajax 响应发生了什么,您需要使用浏览器控制台。

您可以通过按 F12 在大多数浏览器上访问控制台。然后,您将能够看到正在发出的 HTTP 请求,并可以检查它们发生了什么。


0
投票

感谢helgatheviking评论,请执行以下操作:

1- 在“wp-content”文件夹中创建“debug.log”文件:/wp-content/debug.log

2- 确保“debug.log”文件可由任何人写入(所有用户,不仅仅是管理员)(权限 777)

3- 在“wp-config.php”文件的主 WordPress 目录中,取消注释并更改:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

4-在钩子函数内或在functions.php中使用此代码来记录任何变量:

error_log(json_encode($array));

5-阅读/wp-content/debug.log

© www.soinside.com 2019 - 2024. All rights reserved.