ecshop会员登录送积分插件

ecshop会员登录送积分插件可增强网站互动性,同时赠送等级积分和消费积分,后台可开启或关闭此插件,也可设定防止恶意登录刷积分的时间间隔。

开发思路:后台-商店设置里面加入一个tab选项卡“积分设置”,里面有开启和关闭按钮,有时间间隔和积分控制;前台-在user.php登陆处理上加入判断该会员最后一次登陆的时间,用当前登陆的时间戳减去最后一次登陆的时间戳,大于或等于后台设置的时间间隔,就用log_account_change()函数记录和改变帐户。

1,数据表ecs_shop_config里面插入“积分设置”字段和内容,注意下面语句的表前缀和id值;

INSERT INTO ecs_shop_config (`id`, `parent_id`, `code`, `type`, `store_range`, `store_dir`, `value`, `sort_order`) VALUES
(10, 0, 'ext', 'group', '', '', '', 1),
(1001, 10, 'login_points_config', 'select', '1,0', '', '1', 1),
(1002, 10, 'login_points', 'text', '', '', '10', 1),
(1003, 10, 'login_points_interval', 'text', '', '', '3600', 1);

2,添加语言文字;

languages/zh_cn/user.php文件尾添加

$_LANG['login_points'] = '登录送积分';

languages/zh_cn/admin/shop_config.php文件尾添加

$_LANG['cfg_name']['ext'] = '积分设置';
$_LANG['cfg_name']['login_points_config'] = '是否开启会员登录送积分';
$_LANG['cfg_desc']['login_points_config'] = '“是否开启会员登录送积分”设为开启时才可使用此功能。';
$_LANG['cfg_range']['login_points_config'][0] = '关闭';
$_LANG['cfg_range']['login_points_config'][1] = '开启';
$_LANG['cfg_name']['login_points'] = '会员登录赠送积分';
$_LANG['cfg_desc']['login_points'] = '同时赠送等级积分和消费积分。';
$_LANG['cfg_name']['login_points_interval'] = '登录积分时间阈';
$_LANG['cfg_desc']['login_points_interval'] = '防止恶意登录刷积分的时间间隔(秒)。';

3,user.php,添加积分计算。

if ($user->login($username, $password,isset($_POST['remember'])))
{
	/* 登录送积分 */
	if ($GLOBALS['_CFG']['login_points_config'] == '1' && !empty($GLOBALS['_CFG']['login_points']))
	{
		$cur_time = gmtime();
		$sql = "SELECT last_login FROM " .$ecs->table('users'). " WHERE user_name = '$username'";
		$last_login = $db->getOne($sql);

		if (($cur_time - $last_login) >= $GLOBALS['_CFG']['login_points_interval'])
		{
			log_account_change($_SESSION['user_id'], 0, 0, $GLOBALS['_CFG']['login_points'], $GLOBALS['_CFG']['login_points'], $GLOBALS['_LANG']['login_points']);
		}   
	}
	update_user_info();
	recalculate_price();

	$ucdata = isset($user->ucdata)? $user->ucdata : '';
	show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info');
}

ps:新注册会员是没有积分的哦。新注册会员,需要退出登陆,60分钟后再重新登陆才有积分!

End!

阅读剩余
THE END