【发布时间】:2018-08-06 22:55:37
【问题描述】:
有人可以在这里指出正确的方向吗?
我正在尝试设置一个插件,该插件在激活时设置一个 cron 作业,以在用户注册日期 3 个月后更改用户的用户角色。停用插件时也应删除 cron 作业。
目前的插件代码是:
<?php
/*
Plugin Name: Cron Job
*/
add_filter( 'cron_schedules', 'example_add_cron_interval' );
function example_add_cron_interval( $schedules ) {
$schedules['five_seconds'] = array(
'interval' => 5,
'display' => esc_html__( 'Every Five Seconds' ),
);
return $schedules;
}
function cron_hook(){
$users = get_users(
array(
'fields' => array( 'ID', 'user_registered' ),
'role' => 'coaching',
)
);
foreach ( $users as $user ) {
$time = $user->user_registered;
if(strtotime($time) < strtotime('-3 months')) {
$u = new WP_User( $user->ID );
// Remove role
print_r($u);
$u->remove_role( 'coaching' );
// Add role
$u->add_role( 'platinum' );
}
}
}
//echo '<pre>'; print_r( _get_cron_array() ); echo '</pre>';
public static function activate() {
wp_schedule_event( time(), 'five_seconds', 'cron_job' );
}
public static function deactivate() {
wp_clear_scheduled_hook('cron_job');
}
我正在通过 cPanel 运行 wp-cron.php(当前设置为五秒进行测试)。
【问题讨论】: