自定义用户组 积分金币加倍 New
如果让自定义用户组 积分金币设置不一样如 在 自定义用户组 我添加了下 用户组
这VIP用户组每天登录自动送5积分5金币
别的用户组是没有送
大概就是这样子
如何设置只VIP组 有送而以
我知道答案 回答被采纳将会获得1 贡献 已有1人回答 dz x5应该有这个功能,着急就用插件 在Discuz X3系统中实现自定义用户组的差异化积分策略,可通过以下两种方案实现:
一、原生系统配置方案(适合基础需求)
1. 进入后台【用户】-【用户组】-【编辑目标VIP用户组】
2. 在"积分相关"选项卡中找到"访问网站奖励积分"设置项
3. 设置:
extcredits1 = 5(对应积分)
extcredits2 = 5(对应金币)
4. 其他用户组保持默认值0即可
二、深度定制开发方案(推荐精准控制)
通过插件开发实现更精细化的控制逻辑:
1. 创建插件目录:
/src/plugin/vip_reward/
2. 编写主插件文件(vip_reward.inc.php):
<?php
if(!defined('IN_DISCUZ')) exit();
class plugin_vip_reward {
public function logging_login_succeed() {
global $_G;
$vip_groupid = 6; // 替换为实际VIP组ID
if($_G['groupid'] == $vip_groupid && !$this->_is_rewarded_today($_G['uid'])) {
$this->_add_credits($_G['uid']);
}
}
private function _add_credits($uid) {
loadcache('plugin');
$config = $_G['cache']['plugin']['vip_reward'];
C::t('common_member_count')->increase($uid, array(
'extcredits1' => intval($config['credit1']),
'extcredits2' => intval($config['credit2'])
));
$this->_record_log($uid);
}
private function _is_rewarded_today($uid) {
$lastlog = C::t('#vip_reward#reward_log')->fetch_by_uid($uid);
return $lastlog && date('Ymd', $lastlog['dateline']) == date('Ymd');
}
private function _record_log($uid) {
C::t('#vip_reward#reward_log')->insert(array(
'uid' => $uid,
'dateline' => TIMESTAMP
));
}
}
class plugin_vip_reward_forum extends plugin_vip_reward {}
3. 创建数据库表(install.php):
$sql = <<<SQL
CREATE TABLE IF NOT EXISTS `pre_vip_reward_log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` mediumint(8) unsigned NOT NULL,
`dateline` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
);
SQL;
三、实现优势对比
| 方案 | 开发成本 | 灵活度 | 可追溯性 | 防作弊机制 |
|-----------|-------|------|------|-------|
| 原生配置方案 | 低 | 中 | 无 | 无 |
| 插件开发方案 | 中 | 高 | 有 | 有日志记录 |
四、注意事项
1. VIP用户组ID需通过【用户组管理】界面实际查看获取
2. 需在插件配置中设置具体奖励数值
3. 建议配合定时任务清理90天前的日志记录
4. 扩展积分字段需与实际站点配置保持一致
如需完整插件包或技术支持,可前往DZ插件网获取相关开发文档。建议正式环境部署前进行充分测试,避免积分数据异常。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]