我正在使用本教程 https://docs.woocommerce.com/document/shipping-method-api/ 为 Woocommerce 创建自定义运输方式,但我在调试时遇到问题。每当用户更新运输方式时,Woocommerce 调用计算运输。我已经用以下内容覆盖了这个功能。
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);
}
最后,我有一种计算“成本”的相当复杂的方法,但我无法调试它,因为该 echo 行在 chrome 控制台中不产生任何输出。任何想法这里发生了什么?
任何帮助将非常感激。谢谢你。
最佳答案
As this is a background process on server side, don't use javascript.
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 );
Notes:
WC_Logger
methods have been updated since WooCommerce 3: So logging can be grouped by context and severity.Use
WC_Logger
log()
method instead ofadd()
method due to upcoming deprecation (thanks to @Vizz85).
例如:
$logger = wc_get_logger();
$logger->debug( 'debug message', array( 'source' => 'my-extension' ) );
有关的:WC_Logger
available methods 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 ) );
现在您将获得用于调试的数据。
关于javascript - 如何在 WooCommerce 3 中进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61740111/