Auto Delete Users (auto_delete_users)
I need some help cause I couldn't find any solution for my problem and haven't the knowledge to solve the problem on my own.
What I'm trying to do: I want to delte every WordPress user (subscriber) which is older than X days. For testing purposes I needed short intervals, in production the users should be deleted after 6 months. So each subscriber should be deleted after 6 months, after their registration.
What I've tried for testing purposes:
function wcs_auto_delete_users() {
global $wpdb;
$query = $wpdb-prepare( SELECT ID FROM $wpdb-users WHERE datediff( now(), user_registered ) 0.1 );
if ( $oldUsers = $wpdb-get_results( $query, ARRAY_N ) ) {
foreach ( $oldUsers as $user_id ) {
wp_delete_user( $user_id[0] );
}
}
}
add_action( 'wcs_daily_clean_database', 'wcs_auto_delete_users' );
wp_schedule_event( time(), 'hourly', 'wcs_daily_clean_database' );
The snippet above works, but it deletes every user, which I don't want.
So that's what I've tried further for testing purposes:
function auto_delete_users() {
global $wpdb;
$userlevel = 0; //0 = subscriber
$deleteafter = (1/48); //delete User after 30 mins
$query = $wpdb-prepare(SELECT $wpdb-users.ID FROM $wpdb-users LEFT JOIN $wpdb-usermeta ON $wpdb-users.ID = $wpdb-usermeta.user_id WHERE $wpdb-usermeta.meta_key = %s AND $wpdb-usermeta.meta_value = %d AND DATEDIFF(CURDATE(), $wpdb-users.user_registered) %d, $wpdb-prefix.'user_level',$userlevel,$deleteafter);
if($oldUsers = $wpdb-get_results($query, ARRAY_N)){
foreach ($oldUsers as $user_id) {
wp_delete_user($user_id[0]);
}
}
}
add_action('daily_clean_database', 'auto_delete_users');
wp_schedule_event(time(), 'hourly', 'daily_clean_database');
The snippet above doesn't work and maybe you could explain what I'm doing wrong or what I would have to adjust.
I also tried to schedule the event with cron_schedules every 15 minutes to avoid waiting 1 hour to call the function, but that's not important now.
Your help would be much appreciated.
Topic wp-cron user-roles cron user-registration Wordpress
Category Web