discuz每日定时清理用户组积分
创建任务脚本
在 ./source/include/cron/
目录下新建 clearcredits_daily.inc.php
,示例如下:
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
// 指定要清空积分的字段(如 extcredits1)
$creditfield = 'extcredits1';
// 指定需要清理积分的用户组 ID(例如:10, 11, 12)
$target_groupids = array(10, 11, 12);
// 查询符合条件的 uid 列表
$uids = array();
$query = DB::query("SELECT uid FROM ".DB::table('common_member')." WHERE groupid IN (".dimplode($target_groupids).")");
while($row = DB::fetch($query)) {
$uids[] = $row['uid'];
}
// 执行积分清零
if(!empty($uids)) {
DB::query("UPDATE ".DB::table('common_member_count')." SET `$creditfield` = 0 WHERE uid IN (".dimplode($uids).")");
}
添加计划任务步骤(后台操作)
-
进入后台:
后台 > 工具 > 计划任务 > 添加
-
填写:
-
任务名称:每日清零指定用户组积分
-
脚本文件:
clearcredits_daily.inc.php
-
执行时间:设置为每天运行,比如凌晨 03:00
-
注意事项
-
你可以修改
$creditfield
为其他积分类型,如extcredits2
等。 -
如果你想清零多个积分字段,可以在
UPDATE
中写多个字段。 -
如需限制为某些子用户组,可改为
adminid
或加fid
条件等。
阅读剩余
版权声明:
作者:LAOV
链接:https://www.laifaka.top/675.html
文章版权归作者所有,未经允许请勿转载。
THE END