我创建了一个简单的电子商务网站并上传了大约 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,我怀疑这是否能解决问题,除非其他人也在这里建议。其他人说是可变产品造成的,但我确信我所有的产品都是简单类型的。
此错误来自按价格过滤产品的小部件在此处。也许问题与导入的方式有关。
您可以尝试的是:
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.
}
}
这可以解决问题。