注册后30天重置整列

时间:2016-03-09 10:17:03

标签: php wordpress

我有一个Wordpress网站,在我的wp_users表中,我有" user_registered"这是注册日期和" download_limit"它计算用户使用的下载量。如何在注册日期后每30天将用户下载限制重置为0?

2 个答案:

答案 0 :(得分:2)

我没有使用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机制运行此查询。

答案 1 :(得分:0)

您需要一个每天运行的脚本。该脚本会重置满足条件的所有用户的下载限制。

此脚本可以每天使用cronjob启动一次,也可以在当天第一次访问时启动脚本。

这可能是这样的:

  1. 用户登录 - >函数将被称为
  2. 函数检查此函数是否在今天之前被调用(在数据库中保存了日期时间)
  3. 如果没有调用则运行该函数并更新日期时间。
  4. 对于SQL,请查看@Pevara的答案