Заказ minishop2
        Здравствуйте! Такой вопрос, хочу сделать дополнительную проверку телефона в заказе. Проверку уже сделал на js но как запретить отправку заказа?
    
    
                                                                                
            $('.orderSubmit').click(function(){
                        var input;
                        input = $('input.bfh-phone').val();
                        if(input.length < 17)
                        {
                            
                        }
                    });    Комментарии: 6
                очень подробно описано в документации            
                    
                Я видел, и если честно не очень помогло)            
                    
                Пример
Давайте подключим свой класс заказа и переопределим в нём проверку email.
Создаём и подключаем свой расширяющий класс. Затем пишем в нём
Теперь указываем новый класс myOrderHandler в системной настройке ms2_order_handler_class. Если что то пойдёт не так, то всегда можно вернуть старый класс.
После этого ms2 уже использует ваш класс для работы, а тот, в свою очередь наследует свои методы от стандартного.
Теперь мы можем изменить любой метод создания заказа, чем и пользуемся — меняем msOrderHandler::validate().
Вот и все что Вам надо
                    Давайте подключим свой класс заказа и переопределим в нём проверку email.
Создаём и подключаем свой расширяющий класс. Затем пишем в нём
<?php
class myOrderHandler extends msOrderHandler {
}Это мы унаследовали оригинальный класс оформления заказа.Теперь указываем новый класс myOrderHandler в системной настройке ms2_order_handler_class. Если что то пойдёт не так, то всегда можно вернуть старый класс.
После этого ms2 уже использует ваш класс для работы, а тот, в свою очередь наследует свои методы от стандартного.
Теперь мы можем изменить любой метод создания заказа, чем и пользуемся — меняем msOrderHandler::validate().
<?php
class myOrderHandler extends msOrderHandler {
public function validate($key, $value) {
    switch ($key) {
        case 'email':
            // меняем filter_var() на простую регулярку
            // $value = filter_var($value, FILTER_VALIDATE_EMAIL) ? $value : @$this->order[$key];
            $value = preg_match('/.+@.+\..+/i', $value) ? trim($value) : @$this->order[$key];
        break;
        // Конечно, также можно переопределить и другие валидаторы
        // Если прислано поле, которого тут нет - отправляем в дефолтный класс
        default:
            return parent::validate($key, $value);
    }
    if ($value === false) {
        $value = '';
    }
    return $value;
}
}Вот и всё. Мы унаследовали метод и изменили проверку email. Точно также мы можем добавить\изменить проверку и других полей, или вообще полностью поменять весь ход оформления заказа.Вот и все что Вам надо
                Это надо редактировать в коде сниппета?            
                    
                Класс myOrderHandler расширяет класс msOrderHandler, то изменяет или дополняет его функциональность. Создаешь файл с классом согласно документации. После чего указываешь его в качестве класса обработчика задания — это тебе нужно в системные настройки.            
                    
                Понял, спасибо)            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.