Ошибка в плагине минишоп
подскажите где ошибся
написал плагин, если впервые добавляем в корзину, то он не присваивает в зависимости от условия новую цену, а если там товар этот уже был и мы еще добавили, то пересчитывает
написал плагин, если впервые добавляем в корзину, то он не присваивает в зависимости от условия новую цену, а если там товар этот уже был и мы еще добавили, то пересчитывает
<?php
switch ($modx->event->name) {
case 'msOnBeforeAddToCart': case 'msOnAddToCart': case 'msOnChangeInCart': // Обрабатывать только события добавления в корзину и изменения количества
$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
$count = 10;
if ($count >=1 && $count<=4){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 14, //тут ID TV "p1"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=5 && $count<=20){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 15, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=21 && $count<=50){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 16, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=51 && $count<=100){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 17, //тут ID TV "p3"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=101 && $count<=300){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 18, //тут ID TV "p4"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=301 && $count<=500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 19, //тут ID TV "p5"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 20, //тут ID TV "p7"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}
$cartProduct['price'] = $pr; // Изменение цены
$cart->set($cartArray); // Запись нового состояния корзины
}
else{
if ($count >=1 && $count<=4){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 14, //тут ID TV "p1"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=5 && $count<=20){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 15, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=21 && $count<=50){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 16, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=51 && $count<=100){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 17, //тут ID TV "p3"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=101 && $count<=300){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 18, //тут ID TV "p4"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=301 && $count<=500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 19, //тут ID TV "p5"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 20, //тут ID TV "p7"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}
$product->set('price', $pr);
}
}
break;
}
Комментарии: 1
решил в собитиях не указал
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.