Обновление цены

Василий, очень нужна ваша помощь!

Я в msGetPrise прописал условие при котором снижение цены идёт, во-первых, не на всем сайте а только в корзине, а во-вторых только у пользователей которые уже сделали 3 заказа.
С точки зрения самого условия я думаю всё правильно, но всё равно взгляните, пожалуйста.
if ($_SERVER['REQUEST_URI'] == "/final-order"){
$uid = $modx->GetPlaceholder('modx.user.id');
$stmt = $modx->query("SELECT * FROM modx_ms_modOrders WHERE uid='$uid'");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

$myrow = array();
foreach($rows as $value){
	$myrow[] = $value['uid'];
}

if(count($myrow) >= 3){
$price -= 200;
}

return $price;
}
else{
return $price;
}

Вся проблема заключается, что когда я захожу в корзину, обновлений цены не происходит.
Если же я уберу первое условие, то цена изменится на всё сайте.

Подскажите пожалуйста, как можно изменить цену при таком условии (именно в корзине с выбранным товаром)?
Ираклий Летодиани
01 октября 2012, 17:18
modx.pro
1 145
0

Комментарии: 3

Toyo
05 октября 2012, 00:42
0
Я не Василий, но думаю, что нужно посмотреть в сторону файла core/components/minishop/model/minishop/minishop.class.php
В фунции changeCartCount (и, возможно, addToCart) делать эту самую проверку и менять стоимость в сессии пользователя ($_SESSION['minishop']['goods'][$key]['price']).
Василий Наумкин
05 октября 2012, 06:08
0
Товары вносятся в корзину с ценой, которая потом не меняется.

Если вам нужно показывать другую цену именно в корзине, то проще всего это сделать фильтром вывода на цену в чанке tpl.msCart.row. А затем реально менять цену при сохранении заказа в hook`е для FormIt.

Выходит довольно сложно, а у меня и так ощущение, что мы вам всей толпой помогаем магазин делать. Имейте совесть уже.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3