Поле стоимость доставки значение "Бесплатно" и "Индвидуальный рассчет"
Появилась еще одна задача с которой я хочу с Вами поделиться.
Две задачи:
1. Не нравиться значение доставки 0 руб хочется заменить на Бесплатно
2. Через настойки MS2 адмистратору сайта устанавливать значение стоимости доставки «Индивидуальный рассчет.
Для того что бы это реализовать нам нужно выполнить все действия расписанные в статье Стоимость доставки отдельной строкой в оформление заказа MS2
1. Шаг добавим в настройках MS2 вкладка доставка новое поля статья
2. Добавим в наш расширенный класс заведенное поле dev_manager_cost
Далее добавим наш JS новую переменную и сделаем проверки.
А в CMS мы управляем следующим образом
Две задачи:
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 мы управляем следующим образом
Поблагодарить автора
Отправить деньги