Código:

function generar_id_orden($order_id) {

    $longitud_maxima = 4;

    $caracteres_permitidos = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    $id_orden = '';


    // Iniciar la sesión para almacenar la variable global

    if (!session_id()) {

        session_start();

    }


    // Verificar si ya se ha generado un número aleatorio para esta orden

    if (isset($_SESSION['num_aleatorio_generado'][$order_id])) {

        return $_SESSION['num_aleatorio_generado'][$order_id];

    }


    // Generar un número aleatorio y almacenarlo en la sesión

    for ($i = 0; $i < $longitud_maxima; $i++) {

        $id_orden .= $caracteres_permitidos[random_int(0, strlen($caracteres_permitidos) - 1)];

    }

    $_SESSION['num_aleatorio_generado'][$order_id] = $id_orden;


    return $id_orden;

}


add_filter('woocommerce_order_number', 'generar_id_orden');