bp_messages_screen_conversation_mark_notifications()
Mark new message notification when member reads a message thread directly.
Description
Source
File: bp-messages/bp-messages-notifications.php
function bp_messages_screen_conversation_mark_notifications() { global $thread_template; /* * Only run on the logged-in user's profile. * If an admin visits a thread, it shouldn't change the read status. */ if ( ! bp_is_my_profile() ) { return; } // Get unread PM notifications for the user. $new_pm_notifications = BP_Notifications_Notification::get( array( 'user_id' => bp_loggedin_user_id(), 'component_name' => buddypress()->messages->id, 'component_action' => 'new_message', 'is_new' => 1, ) ); $unread_message_ids = wp_list_pluck( $new_pm_notifications, 'item_id' ); // No unread PMs, so stop! if ( empty( $unread_message_ids ) ) { return; } // Get the unread message ids for this thread only. $message_ids = array_intersect( $unread_message_ids, wp_list_pluck( $thread_template->thread->messages, 'id' ) ); // Mark each notification for each PM message as read. foreach ( $message_ids as $message_id ) { bp_notifications_mark_notifications_by_item_id( bp_loggedin_user_id(), (int) $message_id, buddypress()->messages->id, 'new_message' ); } }
Changelog
Version | Description |
---|---|
BuddyPress 1.9.0 | Introduced. |
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.