WordPress后台小工具页面报错Call to a member function is_empty() on null如何解决
问题原因
错误本质是代码尝试对空对象调用方法。当你访问后台「外观>小工具」页面时,WooCommerce的购物车对象WC()->cart还未完成初始化,此时直接调用它的is_empty()方法就会触发致命错误,导致页面崩溃。
修复方案
你需要给两处调用购物车方法的代码加上前置判断逻辑,先确认WooCommerce已启用、且购物车对象已初始化,再执行后续判断。
操作步骤:
- 登录服务器文件管理器或者通过FTP找到路径为
/home/echipame/public_html/wp-content/themes/wilmer/framework/modules/woocommerce/widgets/woocommerce-dropdown-cart/templates/content.php的文件,修改前建议先备份原文件 - 将文件内原有代码替换为以下修改后的代码:
<?php wilmer_mikado_get_module_template_part( 'widgets/woocommerce-dropdown-cart/templates/parts/opener', 'woocommerce' ); ?> <div class="mkdf-sc-dropdown"> <?php $cart_empty_class = ''; if ( function_exists( 'WC' ) && ! is_null( WC()->cart ) ) { $cart_empty_class = WC()->cart->is_empty() ? 'mkdf-empty-sc' : ''; } ?> <div class="mkdf-sc-dropdown-inner <?php echo esc_attr( $cart_empty_class ); ?>"> <?php if ( function_exists( 'WC' ) && ! is_null( WC()->cart ) && ! WC()->cart->is_empty() ) { wilmer_mikado_get_module_template_part( 'widgets/woocommerce-dropdown-cart/templates/parts/loop', 'woocommerce' ); wilmer_mikado_get_module_template_part( 'widgets/woocommerce-dropdown-cart/templates/parts/order-details', 'woocommerce' ); wilmer_mikado_get_module_template_part( 'widgets/woocommerce-dropdown-cart/templates/parts/button', 'woocommerce' ); } else { wilmer_mikado_get_module_template_part( 'widgets/woocommerce-dropdown-cart/templates/posts-not-found', 'woocommerce' ); } ?> </div> </div>
- 保存文件后重新访问后台小工具页面即可恢复正常
内容的提问来源于stack exchange,提问作者Bogdan
相关产品推荐
相关产品推荐

