miniShop2 icon indicating copy to clipboard operation
miniShop2 copied to clipboard

Массив error в сниппете msOrder

Open OlegShchavelev opened this issue 1 year ago • 0 comments

Сообщение об ошибке / Error message

Резюме / Summary

Краткое резюме о чем эта проблема. / A short summary of what this problem is about.

В текущей реализации miniShop2 в форме оформление заказа (вывод сниппета msOrder) после обновления остаются только значения в полях, класс error обновляется.

Запись экрана от 2023-05-23 11-59-38.webm

А вот что у нас в чанке и в сниппете.

Отрезок из чанка tpl.msOrder

{foreach ['email','receiver','phone'] as $field}
      <div class="form-group row input-parent">
          <label class="col-md-4 col-form-label" for="{$field}">
              {('ms2_frontend_' ~ $field) | lexicon} <span class="required-star">*</span>
          </label>
          <div class="col-md-8">
              <input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
                  name="{$field}" value="{$form[$field]}"
                  class="form-control{($field in list $errors) ? ' error' : ''}">
          </div>
      </div>
{/foreach}

и сниппета msOrder

// Check for errors
$errors = [];
if (!empty($_POST)) {
    $response = $miniShop2->order->getDeliveryRequiresFields();
    if ($requires = $response['data']['requires']) {
        foreach ($_POST as $field => $val) {
            $validated = $miniShop2->order->validate($field, $val);
            if ((in_array($field, $requires) && empty($validated))) {
                $errors[] = $field;
            }
        }
    }
}

Но и в документации написан, что массив errors есть

image

Нужно вернуть либо ошибки после обновления страницы или удалить массив error

Environment

Версия miniShop2, версия MODX, Apache/Nginx и версия, версия mysql, браузер и т.д. Любая соответствующая информация. / MiniShop2 version, MODX version, Apache / Nginx and version, mysql version, browser, etc. Any relevant information.

OlegShchavelev avatar May 23 '23 09:05 OlegShchavelev