// Cart rule autoadd fixed
This commit is contained in:
+2
-10
@@ -1000,20 +1000,12 @@ class CartRuleCore extends ObjectModel
|
|||||||
WHERE id_cart = '.(int)$context->cart->id.'
|
WHERE id_cart = '.(int)$context->cart->id.'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.')
|
||||||
ORDER BY priority');
|
ORDER BY priority');
|
||||||
|
|
||||||
$cartRules = ObjectModel::hydrateCollection('CartRule', $result);
|
$cartRules = ObjectModel::hydrateCollection('CartRule', $result);
|
||||||
|
|
||||||
// Todo: consider optimization (we can avoid many queries in checkValidity)
|
|
||||||
foreach ($cartRules as $cartRule)
|
foreach ($cartRules as $cartRule)
|
||||||
if (Db::getInstance()->getValue('SELECT count(*)
|
if ($cartRule->checkValidity($context, false, false))
|
||||||
FROM '._DB_PREFIX_.'cart_cart_rule
|
|
||||||
WHERE id_cart = '.(int)$context->cart->id.'
|
|
||||||
AND id_cart_rule = '.(int)$cartRule->id))
|
|
||||||
$context->cart->removeCartRule($cartRule->id);
|
|
||||||
|
|
||||||
foreach ($cartRules as $cartRule)
|
|
||||||
if ($cartRule->checkValidity($context, true, false))
|
|
||||||
$context->cart->addCartRule($cartRule->id);
|
$context->cart->addCartRule($cartRule->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user