Cómo resaltar la página actual en el menú de navegación de WordPress

Cómo capturar la fecha y hora de la última vez que los usuarios iniciaron sesión en WordPress

Extractos de IsItWP

¿Está buscando una forma de capturar la fecha y hora del último inicio de sesión de un usuario? Si bien probablemente haya un complemento para esto, hemos creado un fragmento de código rápido que puede usar para capturar la fecha y hora en que los usuarios iniciaron sesión por última vez en WordPress.

Instrucciones:

Todo lo que necesita hacer es agregar este código al archivo functions.php de su tema o en un complemento específico del sitio:



// set the last login date
add_action('wp_login','iiwp_set_last_login', 0, 2);
function iiwp_set_last_login($login, $user) {  
    $user = get_user_by('login',$login);
    $time = current_time( 'timestamp' );
    $last_login = get_user_meta( $user->ID, '_last_login', 'true' );

    if(!$last_login){
    update_usermeta( $user->ID, '_last_login', $time );
    }else{
    update_usermeta( $user->ID, '_last_login_prev', $last_login );
    update_usermeta( $user->ID, '_last_login', $time );
    }

}

// get last login date
function iiwp_get_last_login($user_id,$prev=null){

  $last_login = get_user_meta($user_id);
  $time = current_time( 'timestamp' );

  if(isset($last_login['_last_login_prev'][0]) && $prev){
          $last_login = get_user_meta($user_id, '_last_login_prev', 'true' );
  }else if(isset($last_login['_last_login'][0])){
          $last_login = get_user_meta($user_id, '_last_login', 'true' );
  }else{
    update_usermeta( $user_id, '_last_login', $time );
    $last_login = $last_login['_last_login'][0];
  }

  return $last_login;
}

A continuación, puede utilizar el siguiente código para mostrar la última fecha de inicio de sesión. También puede mostrar la fecha de inicio de sesión anterior a sus usuarios. Solo usa iiwp_get_last_login($current_user->ID,true)) para obtener la fecha de conexión anterior y no la fecha actual.


  // show last login date
  global $current_user;
  get_currentuserinfo();
  echo '<p>Previous: Login date: ' . date("Y-m-d h:m:s", iiwp_get_last_login($current_user->ID,true)) . '</p>';
  echo '<p>Current: Login date: ' . date("Y-m-d h:m:s", iiwp_get_last_login($current_user->ID)) . '</p>';

También puede comparar la fecha de la última conexión con la fecha actual y obtener los días desde la última conexión con el siguiente código.


  // how many days since last login
  global $current_user;
  get_currentuserinfo();

  $now = time();
  $last_login = iiwp_get_last_login($current_user->ID,true);
  $datediff = $now - $last_login;

  echo '<p>Days since last login: ' . floor($datediff/(60*60*24)) . '</p>';



Algunas funciones de la versión anterior a continuación están obsoletas, incluidas get_userdatabylogin(). Utilice el código anterior, ya que esta es la versión más reciente con get_user_by().


function your_last_login($login) {
    global $user_ID;
    $user = get_userdatabylogin($login);
    update_usermeta($user->ID, 'last_login', current_time('mysql'));
}
add_action('wp_login','your_last_login');

function get_last_login($user_id) {
    $last_login = get_user_meta($user_id, 'last_login', true);
    $date_format = get_option('date_format') . ' ' . get_option('time_format');
    $the_last_login = mysql2date($date_format, $last_login, false);
    echo $the_last_login;
}

<?php
         global $userdata;
         get_currentuserinfo();
         echo  'You last logged in:'; 
         get_last_login($userdata->ID); 
?>

Notar: Si es la primera vez que agrega fragmentos en WordPress, consulte nuestra guía sobre cómo agregar fragmentos correctamente en WordPress, para que no rompa accidentalmente su sitio.

Si le gustó este fragmento de código, consulte nuestros otros artículos en el sitio, como: 23 consejos efectivos para obtener más suscriptores de correo electrónico hoy y cómo crear un formulario de WordPress con un selector de fecha

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba