Артур Шевченко

Артур Шевченко

Был в сети Вчера в 20:48
Заказы принимаю
Отправить деньги
Как выяснилось позже, решение выше решает не все проблемы, в частности нет возможности удалить чужой файл. Чтобы это исправить идем core/components/tickets/processors/mgr/ticket/update.class.php, открываем на редактирование находим
$q->andCondition(array('parent' => $this->object->id, 'createdby' => $this->modx->user->id), null, 1);

Заменяем на
$q->andCondition(array('parent' => $this->object->id), null, 1);
Ещё меняем
if ($this->object->createdby != $this->modx->user->id && !$this->modx->hasPermission('edit_document'))
на
if (!$this->modx->hasPermission('edit_document'))
Имейте ввиду при обновлении пакета все манипуляции нужно будет повторить.
Решение прямо скажем не очень хорошее, но других вариантов я не придумал.
{set $cost = $product.price | replace: ' ': ''}
Это сработает только при загрузке, дальше переменная $cost меняться не будет. Это первое.
Второе. Цена выводится строкой, а умножение строки на число даёт нечисло.
Ну и третье, это надо делать через js.
(function( $ ){
   $.fn.changeCost = function(id, count) {
    cost = $('#cost-' + id).children('span').text(); //получаем стоимость
    cost = cost.replace(/\s+/g, ''); //вырезаем лишние пробелы
    sum = parseInt(Number(count) * Number(cost)); //умножаем на количество
    $('#sum-' + id).html(sum + ' <i class="fas fa-ruble-sign"></i>'); //выводим результат
   }; 
})( jQuery );
А почему ты решил что этот код должен что-то учитывать? Там нет ни одного сравнения свойств двух товаров, нет даже проверки артикулов. Честно говоря не понимаю для чего вообще этот код, если при изменении заказа стоимость и так пересчитывается. Если нужно работать с модификациями так для этого есть msOptionPrice, если охота самому это реализовать читай документы по minishop2 там написано какие события когда генерируются выбирай нужные пиши плагины.