koyard
@koyard
PHP Developer

Как программно изменить тип плательщика в bitrix:sale.order.ajax?

На странице оформления заказа необходимо убрать радиобаттоны выбора типа плательщика, и задать тип плательщика программно. Как сделать это?
  • Вопрос задан
  • 2331 просмотр
Решения вопроса 1
koyard
@koyard Автор вопроса
PHP Developer
Удалось сделать это с помощью подписки на событие OnSaleComponentOrderOneStepPersonType.
Код файла /bitrix/php_interface/init.php:
AddEventHandler("sale", "OnSaleComponentOrderOneStepPersonType", "selectSavedPersonType");
function selectSavedPersonType(&$arResult, &$arUserResult, $arParams)
{
    global $USER;
    if($USER->IsAuthorized())
    {
        $rsUser = $USER->GetByID($USER->GetID());
        $arUser = $rsUser->Fetch();
        $entity = $arUser['UF_ENTITY']; //поле принадлежности к юр. лицу

        $personType = 0;
        if ($entity) {
            $personType = 2;
        } else {
            $personType = 1;
        }
        //очищаем текущее значение типа плательщика
        foreach($arResult['PERSON_TYPE'] as $key => $type){
            if($type['CHECKED'] == 'Y'){
                $arResult['PERSON_TYPE'][$key]['CHECKED'] = '';
            }
        }
        //устанавливаем новое значение типа плательщика
        $arResult['PERSON_TYPE'][$personType]['CHECKED'] = 'Y';
        $arUserResult['PERSON_TYPE_ID'] = $personType;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gangstarcj
@gangstarcj
Можно просто скрыть через css и с помощью джиквери выберать $("#PERSON_TYPE_2").click();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы