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