Легкая проверка полей при оформлении заказа

Углубленное изучение Битрикс
  • Легкая проверка полей при оформлении заказа

    Антон Долганин 20 Августа 2014 6:45 1178
    А вы знали, что данное решение проверки полей не просто выводит красивые крыжики (кстати, их можно отключить), но и позволяет очень быстро писать кастомные обработчики проверки. Вот к примеру как я легко и просто добавил проверку обязательности города:

    AddEventHandler('asd.ordercheckfields', 'OnOrderPropCheck', array('CSaleHandlers', 'OnOrderPropCheckHandler'));
    class CSaleHandlers {
     
        /*
         * Проверка полей модулем asd.ordercheckfields
         */
        public static function OnOrderPropCheckHandler($arProp, $val) {
            if ($arProp['IS_EMAIL'] == 'Y') {
                if (!self::checkEmailForDomain($val, $arEmails)) {
                    return 'Укажите другой e-mail. Допускаются e-mail адреса следующих почтовых сервисов:'."\n".implode("\n", $arEmails);
                }
            } elseif ($arProp['IS_LOCATION'] == 'Y') {
                if ($arLocation = CSaleLocation::GetByID($val)) {
                    if (!$arLocation['CITY_ID']) {
                        return 'Выберите город';
                    }
                }
            }
        }  
    }