Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/06/2014 01:28:03 AM (11 years ago)
Author:
r-a-y
Message:

Cache the unread inbox count for a user.

This commit:

  • Caches calls to BP_Messages_Thread::get_inbox_count()
  • Invalidates the cache when a new message is sent or deleted
  • Adds a unit test

See #5414

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-messages/bp-messages-cache.php

    r7994 r8053  
    2525
    2626/**
     27 * Clears unread count cache for each recipient after a message is sent.
     28 *
     29 * @since BuddyPress (2.0.0)
     30 *
     31 * @param BP_Messages_Message $message
     32 */
     33function bp_messages_clear_unread_count_cache_on_message_save( BP_Messages_Message $message ) {
     34    foreach ( (array) $message->recipients as $recipient ) {
     35        wp_cache_delete( $recipient->user_id, 'bp_messages_unread_count' );
     36    }
     37}
     38add_action( 'messages_message_after_save', 'bp_messages_clear_unread_count_cache_on_message_save' );
     39
     40/**
     41 * Clears unread count cache for the logged-in user after a message is deleted.
     42 *
     43 * @since BuddyPress (2.0.0)
     44 *
     45 * @param int|array $thread_ids If single thread, the thread ID. Otherwise, an
     46 *  array of thread IDs
     47 */
     48function bp_messages_clear_unread_count_cache_on_message_delete( $thread_ids ) {
     49    wp_cache_delete( bp_loggedin_user_id(), 'bp_messages_unread_count' );
     50}
     51add_action( 'messages_before_delete_thread', 'bp_messages_clear_unread_count_cache_on_message_delete' );
     52
     53/**
    2754 * Invalidates cache for notices.
    2855 *
Note: See TracChangeset for help on using the changeset viewer.