Обновление цены
Василий, очень нужна ваша помощь!
Я в msGetPrise прописал условие при котором снижение цены идёт, во-первых, не на всем сайте а только в корзине, а во-вторых только у пользователей которые уже сделали 3 заказа.
С точки зрения самого условия я думаю всё правильно, но всё равно взгляните, пожалуйста.
Вся проблема заключается, что когда я захожу в корзину, обновлений цены не происходит.
Если же я уберу первое условие, то цена изменится на всё сайте.
Подскажите пожалуйста, как можно изменить цену при таком условии (именно в корзине с выбранным товаром)?
Я в 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;
}
Вся проблема заключается, что когда я захожу в корзину, обновлений цены не происходит.
Если же я уберу первое условие, то цена изменится на всё сайте.
Подскажите пожалуйста, как можно изменить цену при таком условии (именно в корзине с выбранным товаром)?
Комментарии: 3
Я не Василий, но думаю, что нужно посмотреть в сторону файла core/components/minishop/model/minishop/minishop.class.php
В фунции changeCartCount (и, возможно, addToCart) делать эту самую проверку и менять стоимость в сессии пользователя ($_SESSION['minishop']['goods'][$key]['price']).
В фунции changeCartCount (и, возможно, addToCart) делать эту самую проверку и менять стоимость в сессии пользователя ($_SESSION['minishop']['goods'][$key]['price']).
Можно и так, но тогда лучше класс расширить. bezumkin.ru/blog/2012/06/30/methods_change/
А лучше — обойтись без этого и сделать все не меняя ядро магазина.
А лучше — обойтись без этого и сделать все не меняя ядро магазина.
Товары вносятся в корзину с ценой, которая потом не меняется.
Если вам нужно показывать другую цену именно в корзине, то проще всего это сделать фильтром вывода на цену в чанке tpl.msCart.row. А затем реально менять цену при сохранении заказа в hook`е для FormIt.
Выходит довольно сложно, а у меня и так ощущение, что мы вам всей толпой помогаем магазин делать. Имейте совесть уже.
Если вам нужно показывать другую цену именно в корзине, то проще всего это сделать фильтром вывода на цену в чанке tpl.msCart.row. А затем реально менять цену при сохранении заказа в hook`е для FormIt.
Выходит довольно сложно, а у меня и так ощущение, что мы вам всей толпой помогаем магазин делать. Имейте совесть уже.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.