Поле стоимость доставки значение "Бесплатно" и "Индвидуальный рассчет"

Появилась еще одна задача с которой я хочу с Вами поделиться.

Две задачи:

1. Не нравиться значение доставки 0 руб хочется заменить на Бесплатно
2. Через настойки MS2 адмистратору сайта устанавливать значение стоимости доставки «Индивидуальный рассчет.

Для того что бы это реализовать нам нужно выполнить все действия расписанные в статье Стоимость доставки отдельной строкой в оформление заказа MS2

1. Шаг добавим в настройках MS2 вкладка доставка новое поля статья

2. Добавим в наш расширенный класс заведенное поле dev_manager_cost

public function getCost($with_cart = true, $only_cost = false) {

...
  /** @var msDelivery $delivery */
        if (!empty($this->order['delivery']) && $delivery = $this->modx->getObject('msDelivery',
                $this->order['delivery'])
        ) {
            $cost = $delivery->getCost($this, $cost);
            $deliveryCost = $delivery->getCost($this, 0);//Добавил переменную где получаем price доставки
	$deliveryIndividualCost = $delivery->get('dev_manager_cost');
        }
...

$cost = $response['data']['cost'];
        return $only_cost
            ? $cost
            : $this->success('', array('cost' => $cost, 'delivery_cost'=>$deliveryCost, 'deliveryIndividualCost' => $deliveryIndividualCost));
    }

}
Остальной код остается не изменным.

Далее добавим наш JS новую переменную и сделаем проверки.

miniShop2.Order.deliveryCost = '#ms2_delivery_cost';
miniShop2.Callbacks.add('Order.getcost.response.success','getcost_response_success', function(response) {
  var rdc = response.data['delivery_cost'];
  var rdic = response.data['deliveryIndividualCost'];
  if (rdic == 1)
  {
    $(miniShop2.Order.deliveryCost, miniShop2.Order.order).text('Индивидуальный рассчет');
  }
  else {
  if (rdc) $(miniShop2.Order.deliveryCost, miniShop2.Order.order).html(miniShop2.Utils.formatPrice(rdc) + " руб");
  else $(miniShop2.Order.deliveryCost, miniShop2.Order.order).text('Бесплатно');
  }
});
Все мы молодцы оцениваем рельтат нашей доработки.



А в CMS мы управляем следующим образом

Олег Щавелев
08 декабря 2019, 23:51
modx.pro
3
207
+10

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0