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

WooCommerce输入物流跟踪号时自动更新订单状态为已完成的实现方案

实现方案

替换官方示例中下单完成触发的钩子,使用WooCommerce Shipment Tracking插件专属的跟踪信息添加钩子触发订单状态更新即可,完整实现代码如下:

/**
 * 给订单添加物流跟踪信息时自动更新订单状态为已完成
 */
add_action( 'woocommerce_shipment_tracking_added_tracking_item', 'custom_update_order_status_when_add_tracking', 10, 2 );
function custom_update_order_status_when_add_tracking( $order_id, $tracking_item ) { 
    // 过滤无效订单ID
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    // 仅对有效且处于处理中/暂停状态的订单执行状态更新,可根据业务需求调整允许更新的状态列表
    if ( $order && in_array( $order->get_status(), [ 'processing', 'on-hold' ] ) ) {
        $order->update_status( 'completed' );
    }
}
代码说明
  • 绑定的woocommerce_shipment_tracking_added_tracking_item是插件官方预留的动作钩子,会在每一次给订单新增物流跟踪信息时自动触发,自动传入订单ID和当前新增的跟踪项数据两个参数
  • 代码中增加了订单状态判断逻辑,避免覆盖退款、取消等异常状态的订单
  • 如果你需要在修改已有跟踪信息时也触发状态更新,可额外添加一行钩子绑定代码:add_action( 'woocommerce_shipment_tracking_updated_tracking_item', 'custom_update_order_status_when_add_tracking', 10, 2 );
  • 如果需要自定义更新的订单状态,只需把update_status方法里的completed替换为对应状态标识即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:54:06