ID, '_edit_lock', true ) ) { return false; } // Get lock $lock = explode( ':', $lock ); $time = $lock[0]; $user = (int) isset( $lock[1] ) ? $lock[1] : get_post_meta( $post->ID, '_edit_last', true ); // Filter editing window duration $time_window = apply_filters( 'bbp_check_post_lock_window', 3 * MINUTE_IN_SECONDS ); // Return user who is or last edited if ( ! empty( $time ) && ( $time > ( time() - $time_window ) ) && ( $user !== bbp_get_current_user_id() ) ) { return (int) $user; } return false; } /** * Mark the post as currently being edited by the current user * * @since 2.6.0 bbPress (r6340) * * @param int $post_id ID of the post to being edited * @return bool|array Returns false if the post doesn't exist of there is no current user, or * an array of the lock time and the user ID. */ function bbp_set_post_lock( $post_id = 0 ) { // Bail if no post if ( !$post = get_post( $post_id ) ) { return false; } // Bail if no user if ( 0 == ( $user_id = get_current_user_id() ) ) { return false; } // Get time & lock value $now = time(); $lock = "{$now}:{$user_id}"; // Set lock value update_post_meta( $post->ID, '_edit_lock', $lock ); return array( $now, $user_id ); }