bp_core_record_activity()
Listener function for the logged-in user’s ‘last_activity’ metadata.
Description
Many functions use a "last active" feature to show the length of time since the user was last active. This function will update that time as a usermeta setting for the user every 5 minutes while the user is actively browsing the site.
Return
(false|null) Returns false if there is nothing to do.
Source
File: bp-core/bp-core-functions.php
function bp_core_record_activity() { // Bail if user is not logged in. if ( ! is_user_logged_in() ) { return false; } // Get the user ID. $user_id = bp_loggedin_user_id(); // Bail if user is not active. if ( bp_is_user_inactive( $user_id ) ) { return false; } // Get the user's last activity. $activity = bp_get_user_last_activity( $user_id ); // Make sure it's numeric. if ( ! is_numeric( $activity ) ) { $activity = strtotime( $activity ); } // Get current time. $current_time = bp_core_current_time( true, 'timestamp' ); // Use this action to detect the very first activity for a given member. if ( empty( $activity ) ) { /** * Fires inside the recording of an activity item. * * Use this action to detect the very first activity for a given member. * * @since BuddyPress 1.6.0 * * @param int $user_id ID of the user whose activity is recorded. */ do_action( 'bp_first_activity_for_member', $user_id ); } // If it's been more than 5 minutes, record a newer last-activity time. if ( empty( $activity ) || ( $current_time >= strtotime( '+5 minutes', $activity ) ) ) { bp_update_user_last_activity( $user_id, date( 'Y-m-d H:i:s', $current_time ) ); } }
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.