我想调试下面的一个函数。 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
由于您正在执行 Ajax 请求,因此响应不会显示在页面上。
echo
或 print_r()
功能正在运行,但为了查看 Ajax 响应发生了什么,您需要使用浏览器控制台。
您可以通过按 F12 在大多数浏览器上访问控制台。然后,您将能够看到正在发出的 HTTP 请求,并可以检查它们发生了什么。
感谢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