如何在WooCommerce 3+中进行调试

7 浏览
0 Comments

如何在WooCommerce 3+中进行调试

我正在使用这个教程https://docs.woocommerce.com/document/shipping-method-api/为Woocommerce创建自定义的运输方式,但是在调试时遇到了问题。每当用户更新运输方式时,Woocommerce都会调用calculate shipping函数。我已经用以下代码重写了这个函数。

public function calculate_shipping( $package ) {
    // 这是你将添加费率的地方
    $rate = array(
      'idea' => $this->id,
      'label' => $this->title,
      'cost' => '90.00',
      'calc_tax' => 'per_item'
    );
    echo "";
    $this->add_rate($rate);
  }

最后,我有一种相当复杂的计算"cost"的方法,但是我没有办法调试它,因为这个echo语句没有在chrome控制台中输出任何内容。有什么想法吗?

非常感谢您的帮助。谢谢。

0
0 Comments

如何在WooCommerce 3+中进行调试

在WooCommerce 3+中进行调试可能会遇到问题。下面是一个出现问题的示例以及解决方法。

首先,创建一个PHP辅助函数:

function console_output($data) {
  $output = $data;
  if (is_array($output))
    $output = implode(',', $output);
  echo "";
}

然后,可以像这样使用它:

public function calculate_shipping( $package ) {
  // 这是您将添加费率的地方
  $rate = array(
    'idea' => $this->id,
    'label' => $this->title,
    'cost' => '90.00',
    'calc_tax' => 'per_item'
  );
  console_output("Calculating shipping");
  $this->add_rate($rate);
}

这将创建如下输出:

Debug Objects: Calculating shipping

以上就是在WooCommerce 3+中进行调试的方法。

0
0 Comments

如何在WooCommerce 3+中进行调试

在WooCommerce中进行调试时出现的问题及解决方法如下:

问题原因:

由于这是服务器端的后台进程,所以不要使用JavaScript。

解决方法:

1) 使用WooCommerce的WC日志和WC_Logger类进行更好的调试

为了方便从仪表板访问日志的结果,您可以使用WC记录器而不是错误日志进行日志记录。

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

然后,您将能够选择和“查看”您需要的错误日志文件,从而获得所需的调试详细信息。错误日志也位于您的站点安装中的/wc-logs文件夹中。

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

//将任何异常记录到WC日志
$log = new WC_Logger();
$log_entry = print_r( $e, true );
$log_entry .= 'Exception Trace: ' . print_r( $e->getTraceAsString(), true );
$log->log( 'new-woocommerce-log-name', $log_entry );

注意:

- 自WooCommerce 3以来,WC_Logger方法已更新,因此可以按上下文和严重性分组日志记录。

- 由于即将过时,使用WC_Logger的log()方法而不是add()方法。

例如:

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

相关链接:

- 2017年1月WooCommerce开发博客:在WooCommerce 3中改进日志记录

- WC_Logger可用方法的文档

2) 使用WordPress WP_DEBUG日志进行调试(作为替代方法)

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

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

错误将被记录,并显示在wp-content/debug.log文件中,您可以在文本编辑器中打开此文件。

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

error_log( print_r( $variable, true ) );

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

以上是在WooCommerce 3+中进行调试的方法。

0