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

WooCommerce账户下载页订单ID/日期无法显示问题求助(附代码)

修复WooCommerce「我的账户-下载」页面订单ID与日期不显示问题

你的代码核心问题是未定义$order变量,直接调用$order->get_id()会触发报错,导致订单ID和日期无法正常渲染。以下是修复后的完整代码:

add_filter( 'woocommerce_account_downloads_column_download-product', 'display_product_image_on_account_downloads' );
function display_product_image_on_account_downloads( $download ) {
    // 仅针对下载页面
    if ( ! is_wc_endpoint_url( 'downloads' ) ) return;

    if ( $download['product_id'] > 0 ) {
        $product = wc_get_product( $download['product_id'] ); 
        $image   = $product->get_image( array(324, 194) ); // 产品图片
        // 从download数组中获取订单ID并实例化订单对象
        $order = wc_get_order( $download['order_id'] );

        // 确保订单对象存在再输出信息
        if ( $download['product_url'] ) {
            echo $image . '<a href="' . esc_url( $download['product_url'] ) . '">' . esc_html( $download['product_name'] ) . '</a>';
            if ( $order ) {
                echo '<p>' . esc_html( $order->get_id() ) . '</p>';
                echo '<p>' . esc_html( wc_format_datetime( $order->get_date_created() ) ) . '</p>'; 
            }
        } else {
            echo $image . esc_html( $download['product_name'] );
            if ( $order ) {
                echo '<p>' . esc_html( $order->get_id() ) . '</p>';
                echo '<p>' . esc_html( wc_format_datetime( $order->get_date_created() ) ) . '</p>'; 
            }
        }
    }
}

关键修改说明

  • 从$download数组中提取order_id字段,通过wc_get_order()获取有效的订单对象
  • 增加$order存在性判断,避免因订单不存在导致的PHP报错
  • 调整订单信息的输出逻辑,确保仅在订单对象有效时渲染ID和日期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:50:09