/**
 * Update a user's last activity.
 *
 * @since 1.9.0
 *
 * @param int    $user_id ID of the user being updated.
 * @param string $time    Time of last activity, in 'Y-m-d H:i:s' format.
 * @return bool True on success, false on failure.
 */
function bp_update_user_last_activity($user_id = 0, $time = '')
{
    // Fall back on current user.
    if (empty($user_id)) {
        $user_id = bp_loggedin_user_id();
    }
    // Bail if the user id is 0, as there's nothing to update.
    if (empty($user_id)) {
        return false;
    }
    // Fall back on current time.
    if (empty($time)) {
        $time = bp_core_current_time();
    }
    // As of BuddyPress 2.0, last_activity is no longer stored in usermeta.
    // However, we mirror it there for backward compatibility. Do not use!
    // Remove our warning and re-add.
    remove_filter('update_user_metadata', '_bp_update_user_meta_last_activity_warning', 10);
    remove_filter('get_user_metadata', '_bp_get_user_meta_last_activity_warning', 10);
    bp_update_user_meta($user_id, 'last_activity', $time);
    add_filter('update_user_metadata', '_bp_update_user_meta_last_activity_warning', 10, 4);
    add_filter('get_user_metadata', '_bp_get_user_meta_last_activity_warning', 10, 3);
    return BP_Core_User::update_last_activity($user_id, $time);
}
Пример #2
0
 /**
  * @group last_activity
  */
 public function test_delete_last_activity()
 {
     $u = $this->factory->user->create();
     $time = bp_core_current_time();
     BP_Core_User::update_last_activity($u, $time);
     $a = BP_Core_User::get_last_activity($u);
     $found = isset($a[$u]['date_recorded']) ? $a[$u]['date_recorded'] : '';
     $this->assertEquals($time, $found);
     BP_Core_User::delete_last_activity($u);
     $a = BP_Core_User::get_last_activity($u);
     $found = isset($a[$u]['date_recorded']) ? $a[$u]['date_recorded'] : '';
     $this->assertEquals('', $found);
 }