discuz!论坛修复站帮网vip插件bug:VIP会员到期后,重新开通永久会员时,所属的用户组没有切换到永久会员分组

1、我论坛的自定义用户组:

2、站帮网vip插件绑定的分组:

遇到问题:

新用户开通VIP会员都是正常的,但VIP会员到期后,用户续费或者开通更高级别的会员就会出现 “自定义用户组没有自动切换” 的bug,举例说明:比如我的账号是qq1234,之前第一次开通会员时,购买的是一个月的会员(月卡VIP),会员到期后,我想升级为永久会员(终身VIP),开通永久会员成功后,发现会员组还是月卡VIP,如下图:

解决方法:

打开source/plugin/zb7com_vip/source/include/pay/pay_result.inc.php文件,在第125行之后添加如下代码:

$vipGroupid=vip_core::$plugin['forever_group'];

通过分析续费的代码逻辑,发现代码少了这一句,用户购买的是永久会员时,应该设置vipGroupid为永久会员的分组,整段代码如下:

if(empty($vip_user)){
		//新加入
		$add_user=array(
			'uid'=>$uid,
			'username'=>$member['username'],
			'starttime'=>$timeNow,//开通会员时间,固定值,以后不能修改
			'endtime'=>$endtime,
			'isforever'=>$order['isforever'],
			'exp'=>$exp
		);
		if($order['isforever']==0){
			if($month>=12){
				$vipGroupid=vip_core::$plugin['year_group'];
				$add_user['isyear']=1;
				
				/*
				$add_user['yearstart']=$timeNow;//年费开通时间,固定值,以后不能修改
				$add_user['yearend']=$endtime;//年费结束
				$add_user['yeardiff']=0;//年费间隔时间
				*/
			}else{
				$vipGroupid=vip_core::$plugin['group'];
				//$add_user['difftime']=0;//续费间隔时间
			}
		}else{
			$vipGroupid=vip_core::$plugin['forever_group'];
			$add_user['isforever']=1;
		}
		$vip_status=C::t('#zb7com_vip#zb7com_vip')->insert($add_user);
	}else{
		/*续费*/
		$update_user=array();

		if($order['isforever']==0){
			if($vip_user['endtime']>=$timeNow){
				//会员期间续费
				$endtime=gmmktime(gmdate('H',$vip_user['endtime']),gmdate('i',$vip_user['endtime']),gmdate('s',$vip_user['endtime']),gmdate('n',$vip_user['endtime'])+$month,gmdate('j',$vip_user['endtime']),gmdate('Y',$vip_user['endtime']));
				/*
				if($month>=12&&$vip_user['yearstart']&&($vip_user['endtime']>$vip_user['yearend'])&&($timeNow>$vip_user['endtime'])){
				//续费年费会员,加中断时间原因:可能过期后续月会员再续年会员
				if($vip_user['yearstart'])$update_user['yeardiff']=array($timeNow-$vip_user['yearend'],'+');//年费中断时间
				}
				*/
	
			}
			//续费操作
			$update_user['endtime']=$endtime;//会员结束时间
			if($month>=12){
				//续年费会员
				$vipGroupid=vip_core::$plugin['year_group'];
				$update_user['isyear']=1;
				/*
				$update_user['yearend']=$endtime;//年费结束
				if(empty($vip_user['yearstart'])){
				$update_user['yearstart']=$timeNow;//年费开始,固定值
				}
				*/
			}else{
				//续普通会员
				if($vip_user['isyear']){
					//之前是年会员
					$vipGroupid=vip_core::$plugin['year_group'];
					$update_user['isyear']=1;
					/*
					$update_user['yearend']=$endtime;//年费结束
					*/
				}else{
					$vipGroupid=vip_core::$plugin['group'];
					$update_user['isyear']=0;
				}
			}
		}else{
			$vipGroupid=vip_core::$plugin['forever_group'];
			$update_user['isforever']=1;
			$update_user['isyear']=0;
		}
//		$update_user['exp']=$vip_user['exp']+$exp;
		$vip_status=C::t('#zb7com_vip#zb7com_vip')->update_by_uid($uid,$update_user);
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值