Меняется old_price при изменении price в плагине
При изменении цены через плагин (события: msOnGetProductPrice, msOnBeforeAddToCart, msOnAddToCart) перезаписывается значение поля old_price значением price (до изменения). Как сделать так, чтобы значение не изменялось или записать в него свое значение?
Плагин:
Плагин:
<?php
switch ($modx->event->name) {
case 'msOnGetProductPrice':
if ($modx->context->key == 'mgr') {
return '';
}
$currencyrate = $modx->getService('currencyrate', 'currencyrate',
$modx->getOption('currencyrate_core_path', null,
$modx->getOption('core_path') . 'components/currencyrate/') . 'model/currencyrate/', $scriptProperties);
if (!($currencyrate instanceof currencyrate)) {
return '';
}
$currency = $currencyrate->currency;
if ($currency == $modx->getOption('currencyrate_currency')) {
return '';
}
$list = $currencyrate->getList();
$values = & $modx->event->returnedValues;
if (!isset($modx->event->returnedValues['price'])) {
$modx->event->returnedValues['price'] = $price;
}
$price = &$modx->event->returnedValues['price'];
$new_price = ($price * $list[EUR]) / $list[$currency];
if ($new_price !== false) {
$price = $new_price;
}
break;
} Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
После работы похожего плагина в old_price записывается значение price.
На странице товара:
В корзине:
И вставил сюда