WordPress 错误:WooCommerce 默认价格范围不起作用

问题描述 投票:0回答:1

我创建了一个简单的电子商务网站并上传了大约 100 个产品(全部都是 Simple-Products)。最初,我没有遇到任何问题,但在上传大约 60 个产品后,我开始收到此错误。这是我遇到的错误:

Warning: Attempt to read property "min_price" on null in C:\xampp\htdocs\wordpress\wp-content\plugins\woocommerce\includes\widgets\class-wc-widget-price-filter.php on line 91

Warning: Attempt to read property "max_price" on null in C:\xampp\htdocs\wordpress\wp-content\plugins\woocommerce\includes\widgets\class-wc-widget-price-filter.php on line 92

这是突出显示的代码行,由警告建议:

//89      Find min and max price in current result set.
//90        $prices    = $this->get_filtered_price();
//91        $min_price = $prices->min_price;
//92        $max_price = $prices->max_price;

我检查了一些其他答案,并尝试从使用 WooCommerce wc_get_products 按价格范围过滤产品插入代码,尽管我不太了解 PHP,所以我什至不知道在哪里插入代码(我尝试将其插入到函数中) .php 在 WooCommerce 文件夹中)但没有任何效果。有些人建议更新 WordPress 或 WooCommerce,我怀疑这是否能解决问题,除非其他人也在这里建议。其他人说是可变产品造成的,但我确信我所有的产品都是简单类型的。

php wordpress woocommerce widget product
1个回答
0
投票

此错误来自按价格过滤产品的小部件在此处。也许问题与导入的方式有关。

您可以尝试的是:

  1. 如果可能的话,首先暂时禁用/删除过滤产品价格的小部件。
  2. 然后在子主题的functions.php文件中添加以下代码片段,这将重新保存所有现有产品(允许以正确的方式同步/刷新数据)
add_action('template_redirect', 'refresh_all_products');
function refresh_all_products() {
    // Loop through each product
    foreach ( wc_get_products(['limit' => -1]) as $product ) {
        $product->save(); // Sync and save data.
    }
}
  1. 浏览您网站的任何页面(前端)。
  2. 删除代码片段,
  3. 重新启用过滤产品价格的小部件(如果需要)。

这可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.