我有一个Wordpress网站,在我的wp_users表中,我有"user_registered",这是注册日期,"download_limit"是计算用户使用的下载次数。如何在注册日期后每 30 天将用户下载限制重置为 0?
我没有
使用Wordpress的经验,但是在纯sql(MySql)中,查询可能如下所示:
UPDATE wp_users
SET download_limit=0
WHERE
MOD(
TIMESTAMPDIFF(
DAY,
user_registered,
NOW()
),
30
) = 0
WHERE 条件是魔术发生的地方。您计算从现在到订阅日期之间的天数差。如果它能被 30 整除,您就知道需要重置它们的计数器。
您可能需要调整此设置以反映正确的列名和表名。此外,如果您的订阅日期是时间戳,则可能需要将其包装在FROM_UNIXTIME
函数中。
正如@KhorneHoly正确提到的,您需要通过某种(懒惰的)cron 机制每天运行一次此查询。
您需要一个每天运行的脚本。该脚本将重置满足条件的所有用户的下载限制。
此脚本可以每天使用 cronjob 启动一次,也可以在当天的第一次访问时启动脚本。
这可能是这样的:
- 用户登录 -> 函数将被调用 函数
- 检查此函数是否在今天之前被调用过(数据库中保存的日期时间)
- 如果未调用,请运行函数并更新日期时间。
对于 SQL,请查看@Pevara