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
相关产品推荐
相关产品推荐

