Entfernen Sie Rolle als Teil eines Schedule-Ereignisses, das nicht ausgeführt wird

Ich habe eine komische Situation. Ich habe ein geplantes Ereignis erstellt, das bei der Ausführung ein benutzerdefiniertes Feld überprüft und mit dem aktuellen Datum vergleicht. Wenn das Datum abgelaufen ist, wird der Benutzer aus der übereinstimmenden Rolle entfernt.

Die function, die das geplante Ereignis aufruft, funktioniert nur, wenn sie nicht vom geplanten Ereignis aufgerufen wird!

if ( ! wp_next_scheduled( 'qwe_expire_roles' ) ) { wp_schedule_event( time(), 'daily', 'qwe_expire_roles' ); } add_action( 'qwe_expire_roles', 'qwe_update_expire_roles' ); function qwe_update_expire_roles() { $currenttime = time(); $currenttime = date('Ymd',$currenttime); $expire_roles = array( 'mentor', 'instructor', ); $member_roles = array( 'mentor', 'instructor', ); foreach($expire_roles as $role) { $args = array( 'role' => $role, 'meta_key' => $role.'_expiry', 'meta_value' => $currenttime, 'meta_compare' => 'ID ); $user->remove_role( $role ); $memberTest = array_intersect($user->roles, $member_roles); if(empty($memberTest)) { $user->remove_role( 'member' ); } } } } 

Wenn der Befehl qwe_update_expire_roles alleine aufgerufen wird, funktioniert er. Wenn die geplante Ausführung jedoch ausgeführt wird, passiert nichts!

Ich habe WP Crontrol verwendet, um den Cron auszuführen, und kann bestätigen, dass das Ereignis geplant ist. Ich weiß, dass der Code funktioniert, es scheint einfach nicht zu laufen.

Solutions Collecting From Web of "Entfernen Sie Rolle als Teil eines Schedule-Ereignisses, das nicht ausgeführt wird"