Меняется 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.
                    После работы похожего плагина в old_price записывается значение price.
                В итоге записывал старую цену в опции.
На странице товара:
                    На странице товара:
<input type="hidden" name="options[old_price]" value="{$old_price | calcPrice}">В корзине:<div class="cpi__price-final"> <span class="price">{$product.price} {$.cookie['currency']}</span> </div>
{if $product.options[old_price]?}
    <div class="cgray"> <s> <span class="price">{$product.options[old_price]} {$.cookie['currency']}</span> </s> </div>
{/if}            
                Хм. А как наоборот сделать? У меня не записывает в old_price…            
                    
                Насколько я помню, у меня тоже в плагине на это событие не удавалось записать old_price            
                    
                Расширил корзину, скопировав основной класс, просто добавил
                    $old_price = $product->loadData()->get('old_price');И вставил сюда$this->cart[$key] = array(
    'id' => $id,
    'price' => $price,
    'old_price' => $old_price,
    'weight' => $weight,
    'count' => $count,
    'options' => $options,
    'ctx' => $this->modx->context->get('key'),
);            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.