用户发表评论,自动给予积分
2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家
最近对网站改了很多的功能,有增加商品自定义单位,然后价格后面可以5元/斤这样的显示方式,还有就是积分这块,以及销售统计查询.修改积分这块相对简单点,就共享下给需要的人. 1.找到comment.php文件,用DW打开 $result = $GLOBALS['db']->query($sql);后面增加代码 // 统计同一个商品评论的次数 $sql = "select count(*) as count from".$GLOBALS['ecs']->table('comment')."where id_value=".$cmt->id; $point1=$GLOBALS['db']->getOne($sql); //统计同一个商品同一个人评论的次数 $sql = "select count(*) as count from".$GLOBALS['ecs']->table('comment')."where id_value=".$cmt->id." and "."user_id =".$user_id; $point2=$GLOBALS['db']->getOne($sql); /* 同一个商品评论前10个人给予11到15的积分,10到30的给予6到10积分,30到100给予3到5积分,100以上给1到2的积分,同一个商品同一个人第一次按正常给积分,第二次按最低给金粉,也就是第二次*只给1到2积分*/ if($point1<=10 && $point2<2) {$add_point=rand(11,15); $sql='UPDATE '. $GLOBALS['ecs']->table('users') . ' SET pay_points=pay_points+'.$add_point. ' WHERE user_id = ' . $user_id; $GLOBALS['db']->query($sql);} else if ($point1>10 && $point1<=30 && $point2<2) {$add_point=rand(6,10); $sql='UPDATE '. $GLOBALS['ecs']->table('users') . ' SET pay_points=pay_points+'.$add_point. ' WHERE user_id = ' . $user_id; $GLOBALS['db']->query($sql);} else if($point1>30 && $point1<=100 && $point2<2) {$add_point=rand(3,5); $sql='UPDATE '. $GLOBALS['ecs']->table('users') . ' SET pay_points=pay_points+'.$add_point. ' WHERE user_id = ' . $user_id; $GLOBALS['db']->query($sql);} else {$add_point=rand(1,2); $sql='UPDATE '. $GLOBALS['ecs']->table('users') . ' SET pay_points=pay_points+'.$add_point. ' WHERE user_id = ' . $user_id; $GLOBALS['db']->query($sql);} 大家也可以修改成自己给的积分条件,$add_point=rand()这个是随机函数,可以设成固定的.我是设成随机,自己设定好了. 测试发现有些购买的商品可以评论,有些商品却不能评论,提示只有购买的商品才可以评论,后来在论坛上找到解决的办法. 分别是206,177,116,87行改成 " AND (o.order_status = '" . OS_CONFIRMED . "' OR o.order_status = '".OS_SPLITED . "') ". 这样 就可以了,因为订单完成的时候有些操作跳过了,直接完成了,造成订单状态不一致,导致购买了不能评论的结果. |
回答:
那个高手可以做一个订单详细页面,增加一列"我要评论",点击可以直接进入评论页面,这样子会更好,我有试着去调用comment.lbi,但会提示没有购买记录,不能评论,应该是值没有传递给comment.php造成的.,我现在是采用直接跳转到相应商品页面去评论,但不是很方便,也不专业. |
可以直接跳转到商品页面里的锚链接 |
直接跳转到商品页面,我现在就做了,不过不是很好.希望有更好的 |
给楼主顶上去!! |
测试过,积分是加上了,但后台—会员帐户变动明细,这里没有记录啊,咋解决呢? |
过来看看 |
没做后台呢,自动加的,还要后台看明细啊,而且很难做到呢,毕竟只随机加的积分,除非还要做个跟踪,你可以试着再评论那边增加一个字段为积分,把每次的积分变动加入进去,然后去调用应该可以。我自己的网站就算了,不想加这个功能。 |
明细我加进去了,总算搞定了,我这个比较简单,就评价前5自动加10分 // 统计同一个商品评论的次数 $sql = "select count(*) as count from".$GLOBALS['ecs']->table('comment')."where id_value=".$cmt->id; $point1=$GLOBALS['db']->getOne($sql); //统计同一个商品同一个人评论的次数 $sql = "select count(*) as count from".$GLOBALS['ecs']->table('comment')."where id_value=".$cmt->id." and "."user_id =".$user_id; $point2=$GLOBALS['db']->getOne($sql); /* 同一个商品评论前5个人给予10积分同一个商品同一个人第一次按正常给积分,第二次不给分*/ if($point1<=5 && $point2<2) {$add_points=10; $change_desc = '评价得积分'; log_account_change($user_id, $user_money, $frozen_money, $rank_points, $add_points, $change_desc, ACT_ADJUSTING); } |
来看看!支持下! |
恩啦,昨晚我也回去看了下代码,积分变动的表格是account_log,只需要在积分增加的下面增加更新这个表格的变动到account_log表格就可以了。 我是菜鸟呢,ecshop里的很多函数不会用,都是直接写的,呵呵。 log_account_change()是一个sql变动函数吗? |
回复babytutu 呵呵,函数基本都在include/lib_clips.php这个文件里,其实也就是写了句SQL,把值调用出来,用的时候方便点而已 |
感到不错,牡丹鲜切花,支撑了 |
这个还是不错的········· |
最近更新
常用插件
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
- ecshop二次开发详细页面生
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
- ecshop分类批量扩展插件
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
- ecshop2.7.1打印发货单插件
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
- ecshop商品分类名称增加样
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
ecshop热门问答
ecshop热门资料
ecshop语言切换
ecshop引号
ecshop页脚
ecshop动动
ecshop坠毁
ecshop旗号
ecshop唯品会
ecshop项不能
ecshop过长
ecshop文章加关联文章
ecshopjs检测
ecshop添加图片
ecshop简单
ecshopecmall免费支付
模板函数
ecshop笔记本电脑
dede_arcrank
ecshop删掉
ecshop新年
ecshop会员订单
ecshop域名解析
ecshop原函数
ecshop过来人
ecshop中秋月饼
ecshopnowrap
ecshop生意
ecshop显示设置
ecshopiamjs
ecshop秒杀
ecshop证件