Помощь OKAY-Cms поле телефон обязательным? Версия 4.3.4

  • Автор темы Автор темы palifeyo
  • Дата начала Дата начала

palifeyo

Продвинутый (IV)
Сообщения
66
Реакции
16
Баллы
296
Добрый день, установил модуль не обез. емаил поле, но теперь только имя просит ввести, а телефон обязательно нужен для связи, подскажите как сделать в корзине поле телефон обязательным? Версия 4.3.4
 
Как сделать необязательным поле email, а обязательным поле phone на примере okay-cms версия 4.3.4
  1. Изменения в design\okay_shop\html\scripts.tpl
    JavaScript:
        if($(".fn_validate_cart").length>0) {
            $(".fn_validate_cart").validate({
                rules: {
                    name: "required",
                    email: {
                        required: false,
                        email: true
                    },
                    phone: {
                        required: true,
                        phone: true
                    },
                    captcha_code: "required"
                },
                messages: {
                    name: form_enter_name,
                    email: form_enter_email,
                    phone: form_enter_phone,
                    captcha_code: form_error_captcha
                }
            });
    scripts.png
  2. Изменения в design\okay_shop\html\cart.tpl
    HTML:
    {* User's phone *}
    <div class="f_col-md-6 f_col-lg-12 f_col-xl-6">
        <div class="form__group">
            <input class="form__input form__placeholder--focus" name="phone" type="text" value="{$request_data.phone|escape}" data-language="form_phone" >
            <span class="form__placeholder">{$lang->form_phone}*</span>{*добавить звездочку*}
        </div>
    </div>
    
    {* User's email *}
    <div class="f_col-md-6 f_col-lg-12 f_col-xl-6">
        <div class="form__group">
            <input class="form__input form__placeholder--focus" name="email" type="text" value="{$request_data.email|escape}" data-language="form_email" >
            <span class="form__placeholder">{$lang->form_email}</span>{*удалить звездочку*}
        </div>
    </div>
    cart.png
  3. Изменения в Okay\Helpers\ValidateHelper.php
    PHP:
        public function getCartValidateError($order)
        {
            $captchaCode =  $this->request->post('captcha_code', 'string');
           
            $error = null;
            if (!$this->validator->isName($order->name, true)) {
                $error = 'empty_name';
            } elseif (!$this->validator->isEmail($order->email)) {
                $error = 'empty_email';
            } elseif (!$this->validator->isPhone($order->phone, true)) {
                $error = 'empty_phone';
            } elseif (!$this->validator->isAddress($order->address)) {
                $error = 'empty_address';
            } elseif (!$this->validator->isComment($order->comment)) {
                $error = 'empty_comment';
            } elseif ($this->settings->get('captcha_cart') && !$this->validator->verifyCaptcha('captcha_cart', $captchaCode)) {
                $error = 'captcha';
            }
    
            return ExtenderFacade::execute(__METHOD__, $error, func_get_args());
        }
    ValidateHelper.png
  4. Результат
    Result.png
Оказалось на много проще сделать изменения, чем написать модуль.

Проверил. Работает и для версии 4.5.2
 
Последнее редактирование:
Назад
Верх