考虑到wordpress提供的工具,您的任务相当简单。
Step 1: wordpress不会自然记录用户在您的站点注册帐户的日期/时间。您必须手动添加这样的功能。将其保存到wp\\u usermeta表中是有意义的。
看看phptime()
还有wordpressadd_user_meta()
功能。由于元数据必须在新用户注册时写入,因此应该触发时间戳,并添加user_register
hook.
Step 2, Option 1: 将当前时间与用户注册时间进行比较:
$reg_time = get_user_meta($user_id, \'reg_time\', true); // dynamically insert user ID
$week = intval( ceil( ( time() - $reg_time ) / 604800 ) )
Step 2, Option 2: 如果您需要更复杂的事情每周发生在用户身上,您可以安排每周事件。这可以通过服务器外壳中的cronjobs直接完成,也可以通过wordpress本身完成。
对于后一个选项,请查看wp_schedule_event()
.
由于本机仅支持每小时、双日和每日事件,因此您必须添加自定义重复:
function add_weekly_recurrence($schedules) {
$schedules[\'weekly\'] = array(
\'interval\'=> 604800,
\'display\'=> __(\'Once Every Week\')
);
return $schedules;
}
add_filter(\'cron_schedules\', \'add_weekly_recurrence\');
新作业的调度也可能由以下操作触发
user_register
.
Step 3. 现在您已经有了用户注册时间以及比较时间或安排每周事件的功能,最后您必须编写一个函数来实际定义显示的内容(并可能安排)。它必须将用户ID作为(它的)参数之一,如果选择选项2,它还应该增加周/课时,因此您可能还应该将用户当前的周/课时编号存储在wp\\u usermeta表中,并将其作为函数参数。
完成。
Further reading:
Asides: 我怀疑每周上课对任何科目都是个好主意。就我个人而言,我讨厌不能以自己的速度前进,在我的过程中受到限制,无论我被教什么。