ECSHOP 商品评论条件修改——购买过该商品且只能评价一次(购买多少次能评价多少次)

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家



老杨好久没来发帖了,这段时间真的是太忙了,有太多功能和技术想分享出来的,苦于没时间整理。
先发些简单实用的,很多人估计能用到。


ECSHOP 商品评论条件修改,修改为购买过该商品多少次,就只能评价多少次。
不需要修改数据库,原理简介:先在后台商店设置->基本->评论条件为只有购买过此商品的会员才能评价
ECSHOP原有机制是只要购买过一次,就可以无限评价。
这里老杨加入了简单判断,判断会员对此商品是否进行过评价,获取评价数,再获取此商品的购物次数。评价数不能大于或等于购物次数。
老杨官网原帖:http://www.lyecs.com/article/w-41.html

修改如下:

打开comment.php
找到:(注意,这文件有两处一样的,都要修改!)
  1. case COMMENT_BOUGHT :
  2. if ($_SESSION['user_id'] > 0)
  3. {
  4. $sql = "SELECT o.order_id".
  5. " FROM " . $ecs->table('order_info'). " AS o, ".
  6. $ecs->table('order_goods') . " AS og ".
  7. " WHERE o.order_id = og.order_id".
  8. " AND o.user_id = '" . $_SESSION['user_id'] . "'".
  9. " AND og.goods_id = '" . $cmt->id . "'".
  10. " AND o.order_status = '" . OS_CONFIRMED . "' ".
  11. " AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".
  12. " AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".
  13. " LIMIT 1";
  14. $tmp = $db->getOne($sql);
  15. if (emptyempty($tmp))
  16. {
  17. $result['error']= 1;
  18. $result['message'] = $_LANG['comment_brought'];
  19. }
  20. }
复制代码

替换为
  1. case COMMENT_BOUGHT :
  2. if ($_SESSION['user_id'] > 0)
  3. {
  4. $sql = "SELECT COUNT(o.order_id)".
  5. " FROM " . $ecs->table('order_info'). " AS o, ".
  6. $ecs->table('order_goods') . " AS og ".
  7. " WHERE o.order_id = og.order_id".
  8. " AND o.user_id = '" . $_SESSION['user_id'] . "'".
  9. " AND og.goods_id = '" . $cmt->id . "'".
  10. " AND (o.order_status = '" . OS_CONFIRMED . "' or o.order_status = '" . OS_SPLITED . "') ".
  11. " AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".
  12. " AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ";
  13. $bought_count = $db->getOne($sql);
  14. if (!$bought_count)
  15. {
  16. $result['error']= 1;
  17. $result['message'] = $_LANG['comment_brought'];
  18. }else{
  19. $sql = "SELECT COUNT(comment_id) FROM " . $ecs->table('comment') .
  20. " WHERE user_id = '" . $_SESSION['user_id'] . "'".
  21. " AND id_value= '" . $cmt->id . "'";
  22. $comment_count = $db->getOne($sql);
  23. if($comment_count >= $bought_count){
  24. $result['error']= 1;
  25. $result['message'] = '您已对此商品进行过评价!您可以继续购买以便再次评论。';
  26. }
  27. }
  28. }
复制代码

回答:
老杨大大的分享,不能不顶哇。。。。。。。

顶。。。。。。。。。。。。。。。。。。。

这个会用到
貌似shopex也是买了就能无限次评论 这是不好的

已经用上了,非常好
之前就想过要这个限 制

顶!!!!!!!!!!!!!!

顶一下!收藏起来先

LYECSHOP。。。。。。。

LYECSHOP。。。。。。。LYECSHOP。。。。。。。

LYECSHOP。。。。。。。LYECSHOP。。。。。。。

LYECSHOP。。。。。。。LYECSHOP。。。。。。。LYECSHOP。。。。。。。

LYECSHOP。。。。。。。

LYECSHOP。。。。。。。LYECSHOP。。。。。。。

LYECSHOP。。。。。。。