Попробуйте удалять заказы [B]после[/B] формирования списка заказов, а не во время.
Код же приведен. Обратите внимание, циклы не вложенные - сначала один цикл (while) и только потом другой (foreach).
endwhile и endforeach не нужны.
Еще раз:[CODE]while($ob = $res->GetNext(false,false))
$arOrders[] = $ob["ID"];
foreach($arOrders as $ID)
CSaleOrder::Delete($ID); [/CODE]
Если не получается смотрите:
1) правильно ли что сформирован список заказов: print_r($arOrders),
2) правильно ли определен $USER_ID. Если вы используйте обработчик OnAfterUserRegister, то
[CODE]$USER_ID = $arFields["USER_ID"];[/CODE]Подробности в документации.
PS. Выборку заказов лучше делать как показал Дмитрий с помощью
[CODE]$res = CSaleOrder::GetList(array(),array("USER_ID"=>$USER_ID),false,false,array("ID"));[/CODE]
Мой пример был призван показать, что по умолчанию CSaleOrder::GetList вернет все поля заказа, в том числе и ID.