How to debug in WooCommerce 3+(如何在WooCommerce 3+中进行调试)
本文介绍了如何在WooCommerce 3+中进行调试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用本教程https://docs.woocommerce.com/document/shipping-method-api/为WooCommerce创建自定义运输方法,但我在调试时遇到了问题。每当用户更新发货方法时,WooCommerce都会调用Calculate Shipping。我已经用下面的代码覆盖了这个函数。
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控制台中产生任何输出。你知道这是怎么回事吗?
任何帮助都将不胜感激。谢谢。
推荐答案
因为这是服务器端的后台进程,所以请不要使用Java脚本。
1)。WC日志和WooCommerce中的WC_Logger
Class以便更好地调试
若要从仪表板轻松访问日志结果,您可以记录到WC记录器,而不是错误日志。
您可以转到WooCommerce&>系统状态&>日志来访问错误日志。
然后,您将能够选择和查看所需的错误日志文件,从而为您提供所需的调试详细信息。错误日志还位于站点安装的/wc-Logs文件夹中。对捕获的异常运行堆栈跟踪(示例):
// 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->log( 'new-woocommerce-log-name', $log_entry );
备注:
WC_Logger
methods自WooCommerce 3:起已更新,因此可以按上下文和严重性对日志进行分组。由于upcoming deprecation(感谢@Vizz85),请使用
WC_Logger
log()
method而不是add()
method。
例如:
$logger = wc_get_logger();
$logger->debug( 'debug message', array( 'source' => 'my-extension' ) );
相关:
- 开发WooCommerce博客(2017年1月):Improved logging in WooCommerce 3
WC_Logger
available methods 文档
2.使用WordPressWP_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+中进行调试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在WooCommerce 3+中进行调试
猜你喜欢
- PHP foreach() 与数组中的数组? 2022-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- PHP - if 语句中的倒序 2021-01-01