BP_Messages_Message::get_existing_thread( array $recipient_ids, integer $sender )
Get existsing thread which matches the recipients
Description
Parameters
- $recipient_ids
-
(array) (Required)
- $sender
-
(integer) (Required)
Source
File: bp-messages/classes/class-bp-messages-message.php
public static function get_existing_thread( $recipient_ids, $sender = 0 ) { global $wpdb; $bp = buddypress(); // add the sender into the recipient list and order by id ascending $recipient_ids[] = $sender; $recipient_ids = array_filter(array_unique(array_values($recipient_ids))); sort($recipient_ids); $results = $wpdb->get_results( $sql = $wpdb->prepare( "SELECT r.thread_id as thread_id, GROUP_CONCAT(DISTINCT user_id ORDER BY user_id separator ',') as recipient_list, MAX(m.date_sent) AS date_sent FROM {$bp->messages->table_name_recipients} r INNER JOIN {$bp->messages->table_name_messages} m ON m.thread_id = r.thread_id GROUP BY r.thread_id HAVING recipient_list = %s ORDER BY date_sent DESC LIMIT 1 ", implode(',', $recipient_ids) ) ); if ( ! $results ) { return null; } $thread_id = $results[0]->thread_id; if ( ! $is_active_recipient = BP_Messages_Thread::is_thread_recipient( $thread_id, $sender ) ) { return null; } return $thread_id; }
Changelog
Version | Description |
---|---|
BuddyBoss 1.0.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.