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

WooCommerce用户中心我的订单页面增删列开发需求

没问题,我来帮你实现WooCommerce用户账户「我的订单」页面的这些定制需求,下面是具体的代码实现步骤:

WooCommerce「我的订单」页面列定制方案

1. 移除指定列并添加附件列

首先通过woocommerce_account_orders_columns钩子修改订单列表的列结构,移除订单号和订单总额,同时插入自定义的附件列:

add_filter( 'woocommerce_account_orders_columns', 'custom_woocommerce_account_orders_columns' );
function custom_woocommerce_account_orders_columns( $columns ) {
    // 移除订单号与订单总额列
    unset( $columns['order-number'] );
    unset( $columns['order-total'] );
    
    // 重新组织列顺序,将附件列插入到订单状态列之后
    $new_columns = array();
    foreach ( $columns as $key => $name ) {
        $new_columns[ $key ] = $name;
        if ( 'order-status' === $key ) {
            $new_columns['order-attachments'] = __( '订单附件', 'woocommerce' );
        }
    }
    return $new_columns;
}

2. 渲染订单附件列内容

接下来用对应列的钩子输出每个订单的附件内容,结合你提供的WooCommerce Attach Me!插件代码实现:

add_action( 'woocommerce_my_account_my_orders_column_order-attachments', 'custom_woocommerce_account_orders_attachments_column' );
function custom_woocommerce_account_orders_attachments_column( $order ) {
    $order_id = $order->get_id();
    
    // 先检查插件是否激活,避免无插件时出现报错
    if ( class_exists( 'WCAM_Order_Model' ) ) {
        global $wcam_order_model;
        $order_attachments = $wcam_order_model->get_attachments_metadata( $order_id, array() );
        
        // 有附件则输出下载链接,无附件显示提示文字
        if ( ! empty( $order_attachments ) ) {
            foreach ( $order_attachments as $attachment ) {
                // 这里假设返回的附件数组包含url和name字段,若实际结构不同,可打印$order_attachments查看后调整
                if ( isset( $attachment['url'], $attachment['name'] ) ) {
                    echo '<a href="' . esc_url( $attachment['url'] ) . '" target="_blank">' . esc_html( $attachment['name'] ) . '</a><br>';
                }
            }
        } else {
            echo '<span>' . __( '无附件', 'woocommerce' ) . '</span>';
        }
    } else {
        echo '<span>' . __( '未启用订单附件插件', 'woocommerce' ) . '</span>';
    }
}

注意事项

  • 把代码添加到子主题的functions.php文件或自定义功能插件中,避免主题更新导致代码丢失;
  • 附件的输出逻辑需要根据get_attachments_metadata返回的实际数组结构调整,若不确定可临时添加var_dump($order_attachments)查看字段详情;
  • 确保WooCommerce Attach Me!插件处于激活状态,否则附件列会显示插件未启用的提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:05:33