BP_Core_User::get_last_activity( int|array $user_id )
Get last activity data for a user or set of users.
Description
Parameters
- $user_id
-
(Required) User IDs or multiple user IDs.
Return
(false|array)
Source
File: bp-core/classes/class-bp-core-user.php
public static function get_last_activity( $user_id ) {
global $wpdb;
// Sanitize and remove empty values.
$user_ids = array_filter( wp_parse_id_list( $user_id ) );
if ( empty( $user_ids ) ) {
return false;
}
$uncached_user_ids = bp_get_non_cached_ids( $user_ids, 'bp_last_activity' );
if ( ! empty( $uncached_user_ids ) ) {
$bp = buddypress();
$user_ids_sql = implode( ',', $uncached_user_ids );
$user_count = count( $uncached_user_ids );
$last_activities = $wpdb->get_results( $wpdb->prepare( "SELECT id, user_id, date_recorded FROM {$bp->members->table_name_last_activity} WHERE component = %s AND type = 'last_activity' AND user_id IN ({$user_ids_sql}) LIMIT {$user_count}", $bp->members->id ) );
foreach ( $last_activities as $last_activity ) {
wp_cache_set( $last_activity->user_id, array(
'user_id' => $last_activity->user_id,
'date_recorded' => $last_activity->date_recorded,
'activity_id' => $last_activity->id,
), 'bp_last_activity' );
}
}
// Fetch all user data from the cache.
$retval = array();
foreach ( $user_ids as $user_id ) {
$retval[ $user_id ] = wp_cache_get( $user_id, 'bp_last_activity' );
if ( isset( $retval['user_id'] ) ) {
$retval[ $user_id ]['user_id'] = (int) $retval[ $user_id ]['user_id'];
}
if ( isset( $retval['activity_id'] ) ) {
$retval[ $user_id ]['activity_id'] = (int) $retval[ $user_id ]['activity_id'];
}
}
return $retval;
}
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.