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

WooCommerce后台致命错误求助:Call to a member function date() on null

问题分析与解决方案

错误原因

你遇到的Call to a member function date() on null错误,本质是两个问题叠加:

  1. 全局$product变量不可靠:在WooCommerce后台产品列表的部分场景(比如批量操作、快速编辑流程),全局$product可能没有被正确实例化,导致$product为null,调用get_date_modified()时直接返回null;
  2. 未处理get_date_modified()返回null的情况:即使产品对象存在,若产品从未被修改过(或数据异常),get_date_modified()会返回null,此时调用date()方法就会触发致命错误。

修复后的代码

替换你functions.php中的对应代码为:

add_filter( 'manage_edit-product_columns', 'bbloomer_admin_products_date_column', 11 );
 
function bbloomer_admin_products_date_column( $columns ){
    $new_columns = array();
    foreach( $columns as $key => $column ){
        $new_columns[$key] =  $columns[$key];
        if( $key === 'product_cat' )
            $new_columns['modified_date'] = __( 'Last Modified date','woocommerce');
    } 
    return $new_columns;
}

add_action( 'manage_product_posts_custom_column', 'bbloomer_admin_products_date_column_content', 10, 2 );
 
function bbloomer_admin_products_date_column_content( $column, $product_id ){
    if ( $column == 'modified_date' ) {
        // 通过product_id直接实例化产品对象,替代不可靠的全局变量
        $product = wc_get_product( $product_id );
        if ( $product ) {
            $modified_date = $product->get_date_modified();
            // 检查日期对象是否有效,避免调用null的方法
            if ( $modified_date instanceof WC_DateTime ) {
                echo $modified_date->date('F j, Y');
            } else {
                // 产品未被修改时显示默认文本
                echo __( 'Never modified', 'woocommerce' );
            }
        } else {
            // 产品不存在时的提示
            echo __( 'Invalid product', 'woocommerce' );
        }
    }
}

关键优化点

  • 用wc_get_product( $product_id )替代全局$product:确保每次都能准确获取当前产品的对象实例,不受后台场景影响;
  • 增加两层校验:先判断产品对象是否存在,再判断修改日期对象是否有效,彻底避免null调用方法的错误;
  • 增加友好提示:针对产品未修改或无效的情况,显示对应的文本,提升后台体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:45:41