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

WooCommerce按手机号/订单号尾号分配订单至店铺管理员需求

WooCommerce订单按规则分配管理员方案及代码实现

我们可以基于你提供的代码框架,修改为两种符合需求的订单分配逻辑,确保两位管理员处理的订单数量基本持平:

方案一:按账单手机号尾号分配

逻辑:提取订单账单手机号的最后一位数字,奇数分配给管理员A,偶数分配给管理员B。

实现代码

function assign_order_to_manager_by_phone($order, $data) {
    // 替换为你的两位管理员实际ID
    $manager_a_id = 1; // 处理尾号奇数的订单
    $manager_b_id = 2; // 处理尾号偶数的订单
    
    $billing_phone = $order->get_billing_phone();
    $store_manager_id = $manager_a_id; // 默认分配给管理员A
    
    if (!empty($billing_phone)) {
        // 获取手机号最后一位数字
        $last_digit = substr(trim($billing_phone), -1);
        // 判断是否为偶数
        if (is_numeric($last_digit) && $last_digit % 2 == 0) {
            $store_manager_id = $manager_b_id;
        }
    }
    
    // 给订单添加管理员分配标记
    $order->update_meta_data('_store_manager_id', $store_manager_id);
}
add_action('woocommerce_checkout_create_order', 'assign_order_to_manager_by_phone', 20, 2);

注意事项

  • 若用户未填写账单手机号,订单会默认分配给管理员A,你可根据需求调整默认值
  • 若手机号包含+、-等特殊字符,可先添加清洗逻辑过滤非数字内容

方案二:按订单号尾号分配

如果手机号方案因数据缺失等原因无法使用,可改用订单号尾号判断,逻辑与手机号一致。

实现代码

function assign_order_to_manager_by_order_id($order, $data) {
    // 替换为你的两位管理员实际ID
    $manager_a_id = 1; // 处理尾号奇数的订单
    $manager_b_id = 2; // 处理尾号偶数的订单
    
    $order_number = $order->get_order_number();
    $store_manager_id = $manager_a_id;
    
    if (!empty($order_number)) {
        // 获取订单号最后一位数字
        $last_digit = substr(trim($order_number), -1);
        if (is_numeric($last_digit) && $last_digit % 2 == 0) {
            $store_manager_id = $manager_b_id;
        }
    }
    
    $order->update_meta_data('_store_manager_id', $store_manager_id);
}
add_action('woocommerce_checkout_create_order', 'assign_order_to_manager_by_order_id', 20, 2);

你提供的原始参考代码(按国家分配版本)

function before_checkout_create_order($order, $data) {

        $country = $order->billing_country;
        $store_manager_id = '';

        $belgium_region = ['BE', 'NL', 'DE'];
        $czech_region = ['CZ', 'AT', 'SI', 'HU'];
        $uk_region = ['GB'];

        if (in_array($country, $belgium_region)) {
            // 手动分配_store_manager_id,这里的用户ID需要替换为你的实际ID
            $store_manager_id = 7;
        } else if (in_array($country, $czech_region)) {
            $store_manager_id = 3;
        } else if (in_array($country, $uk_region)) {
            $store_manager_id = 2;
        } else {
            $store_manager_id = 1;
        }

        $order->update_meta_data('_store_manager_id', $store_manager_id);
    }
    add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 2);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:18:11