【重要】统一修复由购物车钩选带的了的BUG
LYECS,LYECS+商城系统,多用户商城系统,开源商城系统 发布日期:2015-10-29 作者:老杨
修改的文件为includes/lib_order.php
1、找到:
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE `session_id` = '" . SESS_ID. "' AND `extension_code` != 'package_buy' AND `is_shipping` = 0";
替换为:
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE `session_id` = '" . SESS_ID. "' AND `extension_code` != 'package_buy' AND `is_shipping` = 0 AND rec_id " .db_create_in($_SESSION['cart_rec_ids']);
2、找到:
" AND c.rec_type = '" . CART_EXCHANGE_GOODS . "' " .
' AND c.is_gift = 0 AND c.goods_id > 0 ' .
替换为:
" AND c.rec_type = '" . CART_EXCHANGE_GOODS . "' " .
' AND c.is_gift = 0 AND c.goods_id > 0 ' .
" AND c.rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
3、找到:
$sql = 'SELECT goods_id, goods_number, goods_price FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE extension_code = 'package_buy' AND session_id = '" . SESS_ID . "'";
替换为:
$sql = 'SELECT goods_id, goods_number, goods_price FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE extension_code = 'package_buy' AND session_id = '" . SESS_ID . "' AND rec_id " .db_create_in($_SESSION['cart_rec_ids']);
4、找到:
'LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = c.goods_id '.
"WHERE c.session_id = '" . SESS_ID . "' " .
替换为:
'LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = c.goods_id '.
"WHERE c.session_id = '" . SESS_ID . "' " .
" AND c.rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
5、找到:
" WHERE session_id = '" . SESS_ID . "' AND is_real = 1 " .
"AND rec_type = '$flow_type'";
替换为:
" WHERE session_id = '" . SESS_ID . "' AND is_real = 1 " .
" AND rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
"AND rec_type = '$flow_type'";
6、找到:
$sql = "SELECT SUM(c.goods_number * t.type_money)" .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, "
. $GLOBALS['ecs']->table('bonus_type') . " AS t, "
. $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.session_id = '" . SESS_ID . "' " .
"AND c.is_gift = 0 " .
"AND c.goods_id = g.goods_id " .
"AND g.bonus_type_id = t.type_id " .
"AND t.send_type = '" . SEND_BY_GOODS . "' " .
"AND t.send_start_date <= '$today' " .
"AND t.send_end_date >= '$today' " .
"AND c.rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_total = floatval($GLOBALS['db']->getOne($sql));
/* 取得购物车中非赠品总金额 */
$sql = "SELECT SUM(goods_price * goods_number) " .
"FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' " .
" AND is_gift = 0 " .
" AND rec_type = '" . CART_GENERAL_GOODS . "'";
$amount = floatval($GLOBALS['db']->getOne($sql));
替换为:
$sql = "SELECT SUM(c.goods_number * t.type_money)" .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, "
. $GLOBALS['ecs']->table('bonus_type') . " AS t, "
. $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.session_id = '" . SESS_ID . "' " .
"AND c.is_gift = 0 " .
"AND c.goods_id = g.goods_id " .
"AND g.bonus_type_id = t.type_id " .
"AND t.send_type = '" . SEND_BY_GOODS . "' " .
"AND c.rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
"AND t.send_start_date <= '$today' " .
"AND t.send_end_date >= '$today' " .
"AND c.rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_total = floatval($GLOBALS['db']->getOne($sql));
/* 取得购物车中非赠品总金额 */
$sql = "SELECT SUM(goods_price * goods_number) " .
"FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' " .
" AND is_gift = 0 " .
" AND rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
" AND rec_type = '" . CART_GENERAL_GOODS . "'";
$amount = floatval($GLOBALS['db']->getOne($sql));
7、找到:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_list = $GLOBALS['db']->getAll($sql);
替换为:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND c.is_gift = 0 AND rec_id " .db_create_in($_SESSION['cart_rec_ids']).
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_list = $GLOBALS['db']->getAll($sql);
8、找到:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND c.is_gift = 0 " .
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
替换为:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND c.is_gift = 0 " .
"AND c.is_gift = 0 AND rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
抱歉,昨天的文件上传错了。如果你没有做过修改,可以直接下载替换。下载地址: http://pan.baidu.com/s/1qWqvtEG 密码: zjea
如果修改过,请按以下教程一步步处理,或者下载beyond compare文件对比工具进行对比修改。
1、找到:
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE `session_id` = '" . SESS_ID. "' AND `extension_code` != 'package_buy' AND `is_shipping` = 0";
替换为:
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE `session_id` = '" . SESS_ID. "' AND `extension_code` != 'package_buy' AND `is_shipping` = 0 AND rec_id " .db_create_in($_SESSION['cart_rec_ids']);
2、找到:
" AND c.rec_type = '" . CART_EXCHANGE_GOODS . "' " .
' AND c.is_gift = 0 AND c.goods_id > 0 ' .
替换为:
" AND c.rec_type = '" . CART_EXCHANGE_GOODS . "' " .
' AND c.is_gift = 0 AND c.goods_id > 0 ' .
" AND c.rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
3、找到:
$sql = 'SELECT goods_id, goods_number, goods_price FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE extension_code = 'package_buy' AND session_id = '" . SESS_ID . "'";
替换为:
$sql = 'SELECT goods_id, goods_number, goods_price FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE extension_code = 'package_buy' AND session_id = '" . SESS_ID . "' AND rec_id " .db_create_in($_SESSION['cart_rec_ids']);
4、找到:
'LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = c.goods_id '.
"WHERE c.session_id = '" . SESS_ID . "' " .
替换为:
'LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = c.goods_id '.
"WHERE c.session_id = '" . SESS_ID . "' " .
" AND c.rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
5、找到:
" WHERE session_id = '" . SESS_ID . "' AND is_real = 1 " .
"AND rec_type = '$flow_type'";
替换为:
" WHERE session_id = '" . SESS_ID . "' AND is_real = 1 " .
" AND rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
"AND rec_type = '$flow_type'";
6、找到:
$sql = "SELECT SUM(c.goods_number * t.type_money)" .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, "
. $GLOBALS['ecs']->table('bonus_type') . " AS t, "
. $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.session_id = '" . SESS_ID . "' " .
"AND c.is_gift = 0 " .
"AND c.goods_id = g.goods_id " .
"AND g.bonus_type_id = t.type_id " .
"AND t.send_type = '" . SEND_BY_GOODS . "' " .
"AND t.send_start_date <= '$today' " .
"AND t.send_end_date >= '$today' " .
"AND c.rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_total = floatval($GLOBALS['db']->getOne($sql));
/* 取得购物车中非赠品总金额 */
$sql = "SELECT SUM(goods_price * goods_number) " .
"FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' " .
" AND is_gift = 0 " .
" AND rec_type = '" . CART_GENERAL_GOODS . "'";
$amount = floatval($GLOBALS['db']->getOne($sql));
替换为:
$sql = "SELECT SUM(c.goods_number * t.type_money)" .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, "
. $GLOBALS['ecs']->table('bonus_type') . " AS t, "
. $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.session_id = '" . SESS_ID . "' " .
"AND c.is_gift = 0 " .
"AND c.goods_id = g.goods_id " .
"AND g.bonus_type_id = t.type_id " .
"AND t.send_type = '" . SEND_BY_GOODS . "' " .
"AND c.rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
"AND t.send_start_date <= '$today' " .
"AND t.send_end_date >= '$today' " .
"AND c.rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_total = floatval($GLOBALS['db']->getOne($sql));
/* 取得购物车中非赠品总金额 */
$sql = "SELECT SUM(goods_price * goods_number) " .
"FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' " .
" AND is_gift = 0 " .
" AND rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
" AND rec_type = '" . CART_GENERAL_GOODS . "'";
$amount = floatval($GLOBALS['db']->getOne($sql));
7、找到:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_list = $GLOBALS['db']->getAll($sql);
替换为:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND c.is_gift = 0 AND rec_id " .db_create_in($_SESSION['cart_rec_ids']).
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
$goods_list = $GLOBALS['db']->getAll($sql);
8、找到:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND c.is_gift = 0 " .
"AND rec_type = '" . CART_GENERAL_GOODS . "'";
替换为:
/* 查询购物车商品 */
$sql = "SELECT c.goods_id, c.goods_price * c.goods_number AS subtotal, g.cat_id, g.brand_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " . $GLOBALS['ecs']->table('goods') . " AS g " .
"WHERE c.goods_id = g.goods_id " .
"AND c.session_id = '" . SESS_ID . "' " .
"AND c.parent_id = 0 " .
"AND c.is_gift = 0 " .
"AND c.is_gift = 0 AND rec_id " .db_create_in($_SESSION['cart_rec_ids'])." ".
"AND rec_type = '" . CART_GENERAL_GOODS . "'";