据我所知,每天(或在另一个定期间隔)执行操作的唯一方法是安排cron事件。一种可持续的方法是编写一个小插件,在激活/停用cron时调度/clear\\u。这里有一个您可以使用的插件-我测试了它,以确保它是可安装的,并正确注册了cron事件。您需要将其放入文件(如custom\\u cron\\u event.php)并通过FTP将其传输到/plugins文件夹,或者将其放入文件并压缩(ZIP)文件,以便通过/wp管理界面将其上载到您的网站。
遗憾的是,您不能再依赖在更新用户配置文件以检索用户数据时触发的函数,因为没有更新配置文件。相反,您需要让用户了解您自己,并检测是否需要更改。
<?php
/*
Plugin Name: Custom Plugin
Plugin URI:
Description: Adds function on cron
Author:
Version: 1.0
*/
/*
* When this plugin is activated, schedule/clear_schedule cron
*/
register_activation_hook(__FILE__, \'activate_custom_cron\');
register_deactivation_hook(__FILE__, \'deactivate_custom_cron\');
function activate_custom_cron(){
wp_schedule_event( time(), \'daily\', \'do_custom_cron_event\');
}
function deactivate_custom_cron(){
wp_clear_scheduled_hook(\'do_custom_cron_event\');
}
add_action( \'do_custom_cron_event\', \'custom_cron_event\' );
function custom_cron_event() {
/*
* This is where your function goes
*/
$current_date = date("Y-m-d");
$users = get_users();
foreach( $users as $user){
$date_to_compare = get_user_meta($user->id, \'year_of_birth\');
if (strtotime($current_date) > strtotime($date_to_compare) ) {
$user_levels = rua_get_user($user)->get_level_ids(false, false, true);
foreach ($user_levels as $level) {
rua_get_user($user)->remove_level($level);
}
}
}
}
?>