Skip to content

Instantly share code, notes, and snippets.

@Electrica
Created November 6, 2017 13:36
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save Electrica/075cc906489807318686dfd83ec53845 to your computer and use it in GitHub Desktop.
Save Electrica/075cc906489807318686dfd83ec53845 to your computer and use it in GitHub Desktop.
Вывод доставки отдельным столбцом
<?php
// Переопределяем метод и добавляем стоимость доставки.
class CustomOrder extends msOrderHandler{
public function getCost($with_cart = true, $only_cost = false) {
$response = $this->ms2->invokeEvent('msOnBeforeGetOrderCost', array(
'order' => $this,
'cart' => $this->ms2->cart,
'with_cart' => $with_cart,
'only_cost' => $only_cost,
));
if (!$response['success']) {
return $this->error($response['message']);
}
$cart = $this->ms2->cart->status();
$cost = $with_cart
? $cart['total_cost']
: 0;
/** @var msDelivery $delivery */
if (!empty($this->order['delivery']) && $delivery = $this->modx->getObject('msDelivery',
$this->order['delivery'])
) {
$cost = $delivery->getCost($this, $cost);
$desliveryCost = $delivery->getCost($this, 0);
}
/** @var msPayment $payment */
if (!empty($this->order['payment']) && $payment = $this->modx->getObject('msPayment',
$this->order['payment'])
) {
$cost = $payment->getCost($this, $cost);
}
$response = $this->ms2->invokeEvent('msOnGetOrderCost', array(
'order' => $this,
'cart' => $this->ms2->cart,
'with_cart' => $with_cart,
'only_cost' => $only_cost,
'cost' => $cost,
));
if (!$response['success']) {
return $this->error($response['message']);
}
$cost = $response['data']['cost'];
//$this->log(1, print_r($response['data']));
return $only_cost
? $cost
: $this->success('', array('cost' => $cost, 'deliveryCost' => $desliveryCost));
}
}
// Добавить скрипт
miniShop2.Order.deliveryCost = '#ms2_delivery_cost';
miniShop2.Callbacks.Order.getcost.response.success = function(response) {
var rdc = response.data['delivery_cost'];
if(rdc) $(miniShop2.Order.deliveryCost, miniShop2.Order.order).text(miniShop2.Utils.formatPrice(rdc));
else $(miniShop2.Order.deliveryCost, miniShop2.Order.order).text('0');
}
miniShop2.Callbacks.Order.getcost.response.error = function(response) {
var cost = response.data['cost'];
$(miniShop2.Order.orderCost).text(miniShop2.Utils.formatPrice(cost));
$(miniShop2.Order.deliveryCost, miniShop2.Order.order).text('0');
}
miniShop2.Callbacks.Order.add.response.success = function(response) {
miniShop2.Order.getcost();
}
//в чанке вставить:
<span id="deliveryprice">Стоимость доставки: <span id="ms2_delivery_cost"></span> руб.</span>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment