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

如何自定义WooCommerce查看订单页订单备注并修改系统自动生成备注

WooCommerce 自定义订单商品调整自动备注教程

实现思路

无需修改WooCommerce核心控制文件,通过官方提供的钩子挂载自定义逻辑即可实现需求,可避免后续WooCommerce版本更新覆盖修改内容。

完整实现代码

// 挂载订单商品编辑完成后触发的钩子
add_action( 'woocommerce_order_after_edit_items', 'custom_adjust_order_item_note', 10, 2 );
function custom_adjust_order_item_note( $order_id, $modified_items ) {
    $order = wc_get_order( $order_id );
    $note = '';

    // 统计删除商品及对应删除数量
    $pre_edit_items = $order->get_meta( '_pre_edit_order_item_snapshot', true );
    if ( ! empty( $pre_edit_items ) ) {
        foreach ( $pre_edit_items as $item_id => $item_info ) {
            if ( ! isset( $modified_items[ $item_id ] ) ) {
                $note .= sprintf( '已删除商品「%s」,删除数量:%d;', $item_info['name'], $item_info['qty'] );
            }
        }
    }

    // 追加更新后的订单总金额
    $new_total = wc_price( $order->get_total() );
    $note .= sprintf( '商品调整完成,更新后订单总金额:%s', $new_total );

    // 写入订单备注,第二个参数true代表仅后台可见,改为false则客户也可查看
    if ( ! empty( $note ) ) {
        $order->add_order_note( $note, true );
        $order->save();
    }

    // 存储本次商品快照,供下次编辑对比使用
    $current_snapshot = [];
    foreach ( $order->get_items() as $item_id => $item ) {
        $current_snapshot[ $item_id ] = [
            'name' => $item->get_name(),
            'qty'  => $item->get_quantity(),
        ];
    }
    $order->update_meta_data( '_pre_edit_order_item_snapshot', $current_snapshot );
    $order->save();
}

部署方式

  • 将上述代码复制到站点当前使用主题的functions.php文件末尾即可生效
  • 也可以将代码封装为独立的自定义插件部署,兼容性更高
  • 测试时可在后台打开任意订单,删除/添加商品后刷新页面即可看到生成的自定义备注

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:02