我需要设置一个cron来在特定时间更改用户的角色。例如,每天晚上8点,特定用户的角色应该从“客户”更改为“编辑”
如何在wordpress中实现这一点?
更新时间:
我已按如下方式安排了该功能,但它未在设置的时间运行:
if( !wp_next_scheduled( \'import_into_db\' ) ) {
wp_schedule_event( strtotime(\'12:04:00\'), \'daily\', \'import_into_db\' );
function import_into_db(){
$u = new WP_User(3);
$u->set_role(\'editor\');
}
add_action(\'wp\', \'import_into_db\');
}
这些函数独立运行良好(无计划),但没有按计划运行。Cron在我的安装中运行良好,时间按照UTC设置。我的代码的调度部分出了什么问题?
SO网友:Bikash Waiba
你可以这样做
add_action("after_switch_theme", "schedule_cron_job"); // hook the schedule on theme switch or plugin activation based on the your usage also switch your theme after putting this on functions.php
function schedule_cron_job(){
if (! wp_next_scheduled ( \'import_into_db\' )) {
wp_schedule_event(strtotime(\'12:04:00\'), \'daily\', \'import_into_db\');
}
}
add_action(\'import_into_db\', \'your_cron_job\'); // You were hooking to wp
function your_cron_job(){
$u = new WP_User(3);
$u->set_role(\'editor\');
}
您可以使用cron管理器插件来检查cron作业是否已计划。