Can you develop your idea ? Member’s loop is wide….
Hello,
Sorry for the delay in my answer, but in the meantime, I have found a solution if anyone is interested. The aim is to have a specific parameter showing the “state (online or offline)” of a user. Here is a function that can do the trick :
function is_user_online($user_id, $time=5){
global $wp, $wpdb;
$user_login = $wpdb->get_var( $wpdb->prepare( "
SELECT u.user_login FROM $wpdb->users u JOIN $wpdb->usermeta um ON um.user_id = u.ID
WHERE u.ID = $user_id
AND um.meta_key = 'last_activity'
AND DATE_ADD( um.meta_value, INTERVAL $time MINUTE ) >= UTC_TIMESTAMP()
" ,APP_POST_TYPE
));
if(isset($user_login) && $user_login !=""){
return true;
}
else {return false;}
}
Please use the code
button when posting code.
Here is a better approach, imo:
function is_user_online( $user_id, $time=5 ) {
$last_activity = bp_get_user_last_activity( $user_id );
$curr_time = time();
$diff = $curr_time - strtotime( $last_activity );
$time *= 60; // must be in seconds
if( $diff < $time )
return true;
else
return false;
}
Hello shanebp,
Thanks for your proposal. I tested it and it is fully working.
Just one point : do I still have the ability to define which activity time to take into consideration by call the function. Until now, here’s the code I placed for that :
if(is_user_online($userid, 30))
with time in minuts (ie : 30 for this example)
Regards
Pat
Hello shanebp,
I want to implement this code in the Profile page to show whether the member is online or not. How do I do that? After adding the function to the functions file, how do I call it?
Thanks.