search

Home  >  Q&A  >  body text

Show order ID and order date in WooCommerce My Account download page.

<p>我想在“我的账户”下载页面中显示订单ID、订单日期和产品图片。</p> <pre class="brush:php;toolbar:false;">add_filter( 'woocommerce_account_downloads_column_download-product', 'display_product_image_on_account_downloads' ); function display_product_image_on_account_downloads( $download ) { // Targeting view order pages only 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) ); // The product image $order_id = $order->get_id(); // The order id if ( $download['product_url'] ) { echo $image . '<a href="' . esc_url( $download['product_url'] ) . '">' . esc_html( $download['product_name'] ) . '</a>'; echo '<p>' . esc_html( $order_id ) . '</p>'; echo '<p>' . esc_html( wc_format_datetime( $order->get_date_created() ) ) . '</p>'; } else { echo $image . esc_html( $download['product_name'] ); } } }</pre> <p>产品图片已显示,但订单ID和订单日期未正确显示。有没有办法实现这个?谢谢。</p>
P粉330232096P粉330232096567 days ago496

reply all(1)I'll reply

  • P粉903969231

    P粉9039692312023-07-28 12:23:48

    I checked your code carefully and found some problems in it. So you can use the following version:

    add_filter( 'woocommerce_account_downloads_column_download-product', 'display_product_image_order_info_on_account_downloads', 10, 2 );
    function display_product_image_order_info_on_account_downloads( $download, $item ) {
        // Targeting view order pages only
        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 ) ); // The product image
            $order_id   = $item->get_order_id(); // Get the order ID from the $item object
            $order_date = $item->get_order()->get_date_created(); // Get the order date from the $item object
    
            if ( $download['product_url'] ) {
                echo $image . '<a href="' . esc_url( $download['product_url'] ) . '">' . esc_html( $download['product_name'] ) . '</a>';
                echo '<p>' . esc_html( $order_id ) . '</p>';
                echo '<p>' . esc_html( wc_format_datetime( $order_date ) ) . '</p>'; 
            } else {
                echo $image . esc_html( $download['product_name'] );
            }
        }
    }

    You can add this to your child theme’s functions.php file.

    reply
    0
  • Cancelreply