Last active
December 22, 2020 00:57
-
-
Save OlegShchavelev/5e76490072092e9416aa248a89e38a1b to your computer and use it in GitHub Desktop.
Стоимость доставки отдельной строкой в Minishop2 (после </body>)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
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(); | |
} | |
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<span id="deliveryprice">Стоимость доставки: <span id="ms2_delivery_cost"></span> руб.</span> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if(!class_exists('msOrderInterface')) { | |
require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msorderhandler.class.php'; | |
} | |
class detaliOrderHandler extends msOrderHandler implements msOrderInterface { | |
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); | |
$deliveryCost = $delivery->getCost($this, 0);//Добавил переменную где получаем price доставки | |
} | |
/** @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']; | |
return $only_cost | |
? $cost | |
: $this->success('', array('cost' => $cost, 'delivery_cost'=>$deliveryCost)); | |
} | |
} |
Дайте код, что бы правильно зарегистрировать класс?
Выполни в Console и в "Системные настройки & События" ключу ms2_order_handler_class укажи значение detaliOrderHandler
<?php if ($miniShop2 = $modx->getService('miniShop2')) { $miniShop2->addService('order', 'detaliOrderHandler', '{core_path}components/minishop2/custom/order/mscustomorderhandler.class.php' ); }
После чего в чанке tpl.msOrder можешь выводить переменную
<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
Дайте код, что бы правильно зарегистрировать класс?