Categories
MySQL WordPress

Find Last Login Time for WordPress Users in the SQL Database

<?php
/* 
 * Ultima conexión de los usaurios de WP
 * 
 * PASOS:
 * 1- cd wp-servicios
 * 2- php wp-cli.phar eval-file internos/usuarios_ultima_conexion.php
*/

global $wpdb;
$fecha = date("Y-m-d H:i:s");
$fecha_hoy = DateTime::createFromFormat('Y-m-d H:i:s', $fecha);

// var_dump($fecha_hoy); die;

$usuarios = $wpdb->get_results("
	SELECT user_email, user_id, meta_value
	FROM wp_usermeta
	JOIN wp_users
	ON wp_users.ID = wp_usermeta.user_id
	WHERE meta_key='session_tokens';
");

$lista_usuarios = [];
if (!empty($usuarios)) {
	$conteo = [];
	foreach ($usuarios as $usuario) {
		$user_meta_value = unserialize($usuario->meta_value);
		$array = array_values($user_meta_value);
		$user_ultima_conexion_epoch = $array[0]["login"];
		$user_ultima_conexion_timestamp = new DateTime("@$user_ultima_conexion_epoch"); 
		$user_ultima_conexion_timestamp_humano = $user_ultima_conexion_timestamp->format('Y-m-d H:i:s');
		$fecha_ultima_conexion = DateTime::createFromFormat('Y-m-d H:i:s', $user_ultima_conexion_timestamp_humano);
		$dias_totales_sin_conexion = $fecha_hoy->diff($fecha_ultima_conexion);
	
		echo "La última conexión del usuario: {$usuario->user_email} fue el $user_ultima_conexion_timestamp_humano. Eso fue hace {$dias_totales_sin_conexion->days} días. \n\n" ;
	}
	

}

Leave a Reply

Your email address will not be published. Required fields are marked *