停用WooCommerce才可访问Widgets问题求助
解决WooCommerce后台Widgets区域致命错误:Call to a member function get_cart() on null
错误根源
错误出在Thelma主题的自定义WooCommerce下拉购物车小部件中。当后台加载Widgets页面时,主题小部件直接调用WC()->cart->get_cart(),但此时WooCommerce的购物车对象尚未初始化(WC()->cart为null),触发致命错误。停用WooCommerce后恢复正常,也验证了问题是主题小部件与WooCommerce的初始化逻辑不兼容导致的。
解决方案
1. 直接修复主题小部件代码
找到错误文件:/home/gallovin/public_html/test/wp-content/themes/thelma/framework/modules/woocommerce/widgets/woocommerce-dropdown-cart/woocommerce-dropdown-cart.php,定位到第37行附近,在调用get_cart()前添加检查逻辑:
// 先判断是否为后台页面,后台无需渲染购物车内容 if ( is_admin() ) { return; } // 检查WooCommerce是否加载且购物车对象存在 if ( ! function_exists('WC') || is_null(WC()->cart) ) { return; } // 原有的购物车数据获取代码 $cart_items = WC()->cart->get_cart();
修改后保存文件,刷新后台Widgets页面即可恢复正常。
2. 临时禁用问题小部件(无需改代码)
如果暂时不想修改代码,可以快速禁用这个小部件:
- FTP方式:登录服务器FTP,找到上述小部件文件夹,将
woocommerce-dropdown-cart重命名为woocommerce-dropdown-cart-disabled,WordPress会自动停止加载该小部件。 - 数据库方式:登录phpMyAdmin,找到WordPress数据库的
wp_options表(前缀可能不同),搜索widget_mkdf_woocommerce_dropdown_cart选项并删除,即可移除该小部件的侧边栏配置。
3. 长期兼容方案
- 检查Thelma主题是否有最新版本,主题开发者可能已修复该兼容性问题,更新主题即可解决。
- 如果主题无更新,联系主题官方支持,提交该错误信息,请求官方发布修复补丁。
内容的提问来源于stack exchange,提问作者Philipp Sidler
相关产品推荐
相关产品推荐

