ECSHOP 商品評論條件修改,修改為購買過該商品多少次,就只能評價多少次。
不需要修改數據庫,原理簡介:先在后臺商店設置->基本->評論條件為只有購買過此商品的會員才能評價
ECSHOP原有機制是只要購買過一次,就可以無限評價。
這里A5源碼小編加入了簡單判斷,判斷會員對此商品是否進行過評價,獲取評價數,再獲取此商品的購物次數。評價數不能大于或等于購物次數。
修改方法如下:
打開comment.php
找到:
case COMMENT_BOUGHT :
if ($_SESSION['user_id'] > 0)
{
$sql = "SELECT o.order_id".
" FROM " . $ecs->table('order_info'). " AS o, ".
$ecs->table('order_goods') . " AS og ".
" WHERE o.order_id = og.order_id".
" AND o.user_id = '" . $_SESSION['user_id'] . "'".
" AND og.goods_id = '" . $cmt->id . "'".
" AND o.order_status = '" . OS_CONFIRMED . "' ".
" AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".
" AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".
" LIMIT 1";
$tmp = $db->getOne($sql);
if (emptyempty($tmp))
{
$result['error'] = 1;
$result['message'] = $_LANG['comment_brought'];
}
}
注意,這文件有兩處一樣的,都要修改!
替換為:
case COMMENT_BOUGHT :
if ($_SESSION['user_id'] > 0)
{
$sql = "SELECT COUNT(o.order_id)".
" FROM " . $ecs->table('order_info'). " AS o, ".
$ecs->table('order_goods') . " AS og ".
" WHERE o.order_id = og.order_id".
" AND o.user_id = '" . $_SESSION['user_id'] . "'".
" AND og.goods_id = '" . $cmt->id . "'".
" AND (o.order_status = '" . OS_CONFIRMED . "' or o.order_status = '" . OS_SPLITED . "') ".
" AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".
" AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".
" LIMIT 1";
$bought_count = $db->getOne($sql);
if (!$bought_count)
{
$result['error'] = 1;
$result['message'] = $_LANG['comment_brought'];
}else{
$sql = "SELECT COUNT(comment_id) FROM " . $ecs->table('comment') .
" WHERE user_id = '" . $_SESSION['user_id'] . "'".
" AND id_value= '" . $cmt->id . "'".
" LIMIT 1";
$comment_count = $db->getOne($sql);
if($comment_count >= $bought_count){
$result['error'] = 1;
$result['message'] = '您已對此商品進行過評價!您可以繼續購買以便再次評論。';
}
}
}
注意,這文件有兩處一樣的,都要修改!
新聞熱點
疑難解答