在特定时间更改特定用户的用户角色

时间:2018-05-02 作者:dc09

我需要设置一个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设置。我的代码的调度部分出了什么问题?

2 个回复
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作业是否已计划。

SO网友:NightHawk

您需要获取用户ID,创建WP_User 实例,您可以使用该实例更改特定用户的角色:

$u = new WP_User(3);
$u->set_role(\'editor\');
然后,您可以使用自定义间隔来计划此操作。如何做到这一点,这里已经给出了答案:Schedule event at specific time every day

结束

相关推荐