如何在WooCommerce中进行调试 [英] How to debug in WooCommerce

查看:312
本文介绍了如何在WooCommerce中进行调试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用本教程 https://为Woocommerce创建自定义送货方式docs.woocommerce.com/document/shipping-method-api/,但调试时遇到问题.每当用户更新送货方式时,Woocommerce调用都会计算送货.我用以下方法覆盖了此功能.

I am creating a custom shipping method for Woocommerce using this tutorial https://docs.woocommerce.com/document/shipping-method-api/ but I am having issues debugging. Whenever shipping methods get updated by user, Woocommerce calls calculate shipping. I have overridden this function with the following.

public function calculate_shipping( $package ) {
    // This is where you'll add your rates
    $rate = array(
      'idea' => $this->id,
      'label' => $this->title,
      'cost' => '90.00',
      'calc_tax' => 'per_item'
    );
    echo "<script>console.log('Calculating shipping');</script>";
    $this->add_rate($rate);
  }

最后,我有一种相当复杂的方法来计算成本",但我无法调试它,因为该回显线在chrome控制台中不产生任何输出.有什么想法吗?

In the end I have a fairly complex way of calculating the "cost" but I have no way of debugging it because that echo line produces no output in the chrome console. Any ideas what is going on here?

任何帮助将不胜感激.谢谢.

Any help would be much appreciated. Thank you.

推荐答案

由于这是服务器端的后台进程,因此请勿使用javascript .

As this is a background process on server side, don't use javascript.

1)使用WordPress WP_DEBUG日志进行调试

a)首先编辑您的wp-config.php文件,添加以下行以启用调试(如果已经定义,请编辑值):

a) First edit your wp-config.php file adding the following lines to enable debug (if these are already defined, edit the values):

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

记录错误时,它们应该出现在wp-content/debug.log中.您可以在文本编辑器中打开此文件.

As errors are logged, they should appear in wp-content/debug.log. You can open this file in a text editor.

b)在您的代码上:使用以下代码(其中$variable是要在错误日志中显示的变量:

b) On your code: Use the following (where $variable is the variable to be displayed in the error log:

error_log( print_r( $variable, true ) );

现在,您将获得用于调试的数据.

Now you will get the data for debugging.

2) WC日志和WooCommerce中的WC_Logger类用于调试

2) WC Logs and the WC_Logger Class in WooCommerce for debugging

要从仪表板轻松访问日志结果,可以登录到WC记录器,而不是错误日志.

To access the results of the log easily from the dashboard, you can log to a WC logger rather than the error log.

您可以通过转到WooCommerce>系统状态>日志来访问错误日志.

You can access error logs by going to WooCommerce > System Status > Logs.

然后,您将能够选择和查看"所需的错误日志文件,从而为您提供所需的调试详细信息.错误日志也位于您的站点安装中的/wc-logs文件夹中.

Then you will be able to choose and "view"the error log file you need, giving you the debugging details that you need. Error logs are also located in the /wc-logs folder within your site install.

在捕获的异常上运行堆栈跟踪(示例):

Running a stack trace on a caught exception (example):

// Log any exceptions to a WC logger
$log = new WC_Logger();
$log_entry = print_r( $e, true );
$log_entry .= 'Exception Trace: ' . print_r( $e->getTraceAsString(), true );
$log->add( 'new-woocommerce-log-name', $log_entry );

注意:自WooCommerce 3起,WC_Logger方法已更新,因此可以根据上下文和严重性对日志进行分组.

Note: WC_Logger methods have been updated since WooCommerce 3: So logging can be grouped by context and severity.

例如:

$logger = wc_get_logger();
$logger->debug( 'debug message', array( 'source' => 'my-extension' ) );

相关:

  • Develop WooCommerce blog (january 2017): Improved logging in WooCommerce 3
  • Documentation on the WC_Logger available methods

这篇关于如何在WooCommerce中进行调试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆