You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce single-product模板致命错误:is_on_sale()调用对象为null

WooCommerce启用后网站崩溃的解决方法

问题说明

启用WooCommerce后网站直接崩溃,停用插件则恢复正常,具体错误详情:

致命错误:未捕获的Error:在/home/brga7543/smatchcard.com/wp-content/plugins/woocommerce/templates/single-product/sale-flash.php:25行对null调用成员函数is_on_sale()
堆栈跟踪:
#0 /home/brga7543/smatchcard.com/wp-content/plugins/woocommerce/includes/wc-core-functions.php(345): include()
#1 /home/brga7543/smatchcard.com/wp-content/plugins/woocommerce/includes/wc-template-functions.php(1676): wc_get_template('single-product/...')
#2 /home/brga7543/smatchcard.com/wp-includes/class-wp-hook.php(307): woocommerce_show_product_sale_flash('')
#3 /home/brga7543/smatchcard.com/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters('', Array)
#4 /home/brga7543/smatchcard.com/wp-includes/plugin.php(476): WP_Hook->do_action(Array)
#5 /home/brga7543/smatchcard.com/wp-content/plugins/woocommerce/templates/content-single-product.php(43): do_action('woocommerce_bef...')
#6 /home/brga7543/smatchcard.com/wp-includes/template.php(772): require('/home/brga7543/...')
#7 /home/brga7543/smatchcard.com/wp-content/plugins/wo in /home/brga7543/smatchcard.com/wp-content/plugins/woocommerce/templates/single-product/sale-flash.php on line 25

核心问题:渲染商品促销标签时,程序无法获取有效的商品对象($product为null),直接调用is_on_sale()方法导致报错。

解决步骤

  • 检查并修复模板文件:

    1. 若主题未重写WooCommerce促销标签模板,直接下载对应版本的官方WooCommerce插件,将其中的single-product/sale-flash.php文件替换网站同路径下的文件。
    2. 若主题已重写该模板(路径:/wp-content/themes/你的主题名/woocommerce/single-product/sale-flash.php),打开文件后在调用$product->is_on_sale()前添加判断:
      global $product;
      if ( ! $product ) return; // 确保商品对象存在再执行后续逻辑
      if ( $product->is_on_sale() ) {
          // 保留原促销标签渲染代码
      }
      
  • 排查插件冲突:
    仅启用WooCommerce,逐个禁用其他插件,每次禁用后刷新网站,定位到引发冲突的插件,可尝试更新该插件或更换替代插件。

  • 测试主题兼容性:
    临时切换至WordPress默认主题(如Twenty Twenty-Four),若网站恢复正常,说明当前主题的WooCommerce适配代码存在问题,可联系主题开发者修复或自行调整主题内相关代码。

  • 重置WooCommerce模板:
    进入WooCommerce设置→高级→模板,点击「恢复默认模板」按钮,重置所有自定义修改的模板文件。

  • 更新WooCommerce版本:
    若当前使用的WooCommerce不是最新版,升级至官方最新版本,修复已知的模板相关bug。


内容的提问来源于stack exchange,提问作者Bruno Bros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:25:39