Excluir usuários de multisite depois de não terem logado por um período de tempo definido?

Eu adicionei isso aos usuários enquanto eles fazem logon em qualquer um dos sites no meu multisite.

update_user_meta( $user_id, '_last_login', time() ); 

Agora eu quero excluir todos os usuários que não fizeram logon nos últimos 6 meses. Eu estou procurando a versão sql deste, pois eu incluí-lo-ei em uma tarefa agendada para executar uma vez por semana para limpar o database.

  $time = strtotime('-1 hour'); $user_query = new WP_User_Query(array('meta_key' => '_last_login', 'meta_value' => $time, 'meta_compare' => ' 'ID')); if (!function_exists('wpmu_delete_user')) { include(ABSPATH . "wp-admin/includes/ms.php"); } if ($user_query->results) { foreach ($user_query->results as $old_user) { wpmu_delete_user($old_user); } }; 

Solutions Collecting From Web of "Excluir usuários de multisite depois de não terem logado por um período de tempo definido?"

Se o seu código funcionar, use-o.

Deve ser possível fazer isso em SQL puro e isso pode até ser mais eficiente, mas não. Em vez disso, a menos que você esteja enfrentando problemas identificáveis ​​usando o código Core – timeouts, por exemplo – e não pode resolvê-los, não recorra a uma solução SQL pura.

A razão é que, se a estrutura do database ou outra funcionalidade do núcleo mudarem, o código baseado nas funções do núcleo deve (provavelmente) sobreviver. O código baseado em SQL puro pode não.