Korusol
6/14/2019 - 1:03 PM

Группа для многоразового купона

Костыль если нужно применить купон многоразовый купон, одина раз для пользователя

<?php \Bitrix\Main\EventManager::getInstance()->addEventHandler(
   'sale', 'OnSaleOrderEntitySaved', 'OnStatusChange'
);

function OnStatusChange(Bitrix\Main\Event $event) {

   $groupId = 18;
   $couponName = 'ВСЕПО300';
   $order = $event->getParameter("ENTITY");
   $arOrderVals = $order->getFields()->getValues();

   $orderId = $arOrderVals['ID'];
   $userId = $order->getUserId();
   $discountData = $order->getDiscount()->getApplyResult();

   if (key($discountData['COUPON_LIST']) == $couponName) {
     \Bitrix\Main\UserGroupTable::delete(array('GROUP_ID' => $groupId, 'USER_ID' => $userId));
      /*$arGroups = CUser::GetUserGroup($userId);
      unset($arGroups[array_search('17', $arGroups)]);
      CUser::SetUserGroup($userId, $arGroups);*/
   }

}