Не обновляются поля заказа ajax msOrder

Всем привет. Нужно было сделать, чтобы если заполнено текстовое поле extfld_delivery_price на странице оформления заказа, например значением 100, то это поле было доступно в кастомном обработчике доставки в функции getCost() в массиве $orderData = $order->get().

Я делал так:
// Заполняем поле значением
$(miniShop2.Order.order + ' [name="extfld_delivery_price"]').val('100').change();
miniShop2.Order.getcost();
И иногда это поле обновляется и доступно в функции getCost() данного класса в массиве $orderData, а иногда нет. Уловить закономерность и причины такого поведения не получается.

Может быть кто-то сталкивался с этим? Спасибо
Ivan
18 ноября 2024, 12:08
modx.pro
105
0

Комментарии: 3

Артур Шевченко
18 ноября 2024, 13:34
0
Скорее всего дело в том, что за короткое время происходит изменение нескольких полей заказа и, поскольку данные записываются в сессию, она не успевает обновится. Тут либо переходить на хранение данных в БД, если версия minishop2 позволяет, или ставить задержку через setTimeout().
    Ivan
    18 ноября 2024, 14:09
    0
    То есть может получиться так, что мне придется вызывать свой action который будет добавлять поле с таким значением в сессию заказа?
      Ivan
      18 ноября 2024, 14:19
      0
      miniShop2.Order.add('extfld_delivery_price','100', function() {
      		        miniShop2.Order.getcost();
          })

      Это вот работает, но чтобы увидеть изменения нужно перезагрузить страницу. Посмотрю еще. Спасибо
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3