Bonjour,
Non, le problème vient bien de votre plugin.
Rien ne guarantie que $order->order_user_id soit présent dans la fonction generate.
Si vous regardez le callstack de l'erreur, vous pouvez voir que cela passe par l'event onAfterOrderUpdate donc la commande est mise à jour, apparement pour un changement de status de commande.
Or, dans ce cas $order ne contient que le order_id, le order_status et "old" (qui est un objet avec les infos de la commande dans la base de données avant le save).
Le mieux c'est d'avoir un code de ce genre dans votre plugin:
if(empty($order->order_user_id)) {
if(!empty($order->old->order_user_id)) {
$order->order_user_id = $order->old->order_user_id;
} else {
$class = hikashop_get('class.order');
$dbOrder = $class->get($order->order_id);
$order->order_user_id = $dbOrder->order_user_id;
}
}