SEQUEL.ONE

SEQUEL.ONE

Был в сети 30 июня 2026, 13:59
Заказы принимаю
Цена из price меняется в карточке товара и в корзине. Но вот не пойму как менять цену old_price? Она не меняется. Вот код плагина:
<?php
switch ($modx->event->name) {
	case 'msOnGetProductPrice': case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
		// Плагин принимает:
		// $product - объект msProductData
		// $data - массив со свойствами товара, может отсутствовать
		// $price - текущая цена товара

        $curs_global = $modx->getOption('ms2_curs_global');
        $curs_global_enable = $modx->getOption('ms2_curs_global_enable');
        $product = $modx->getObject('msProduct', $data['id']);
        $curs = $product->get('vendor.curs');

		// Подключаем массив значений по ссылке - так удобнее
		$values = & $modx->event->returnedValues;
		
		$old_price = $product->get('old_price');
		$values['old_price'] = $old_price;

		// Цена может меняться несколькими плагинами сразу, поэтому проверяем:
		if (isset($values['price'])) {
			$price = $values['price'];
		}
		
		if (isset($values['old_price'])) {
			$old_price = $values['old_price'];
		}
        if($curs_global_enable != 1) {
		// Удваиваем цену:
    		$values['price'] = $price * $curs;
    		$values['old_price'] = $old_price * $curs;
        } else {
            $values['price'] = $price * $curs_global;
    		$values['old_price'] = $old_price * $curs_global;
        }
		
		//exit(var_dump($curs));
	break;
}
Накупил в то время когда скидки были) Всё и сразу использовать конечно нет резона.

Дополнения не перепродаю. Смысла в этом нет никакого. Для клиентов создаю в своём кабинете новые ключи и покупаю компоненты, а купив один раз компонент, на другой уже скидка постоянная действует)
В modstore.pro в просьбе отказали, но дали промо код на 20% скидку для дальнейших покупок. Сбросил ключ где было 27 купленных компонентов и 2 докупил с кодом, конечно немного обидно, т.к. 2 компонента были уже приобретены, а тут пришлось докупать.