bp_nouveau_ajax_delete_thread()
AJAX delete entire thread.
Description
Source
File: bp-templates/bp-nouveau/includes/messages/ajax.php
function bp_nouveau_ajax_delete_thread() { global $wpdb, $bp; $response = array( 'feedback' => __( 'There was a problem deleting your messages. Please try again.', 'buddyboss' ), 'type' => 'error', ); if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'bp_nouveau_messages' ) ) { wp_send_json_error( $response ); } if ( empty( $_POST['id'] ) ) { wp_send_json_error( $response ); } $thread_ids = wp_parse_id_list( $_POST['id'] ); foreach ( $thread_ids as $thread_id ) { if ( ! messages_check_thread_access( $thread_id ) && ! bp_current_user_can( 'bp_moderate' ) ) { wp_send_json_error( $response ); } // Removed the thread id from the group meta. if ( bp_is_active( 'groups' ) && function_exists( 'bp_disable_group_messages' ) && true === bp_disable_group_messages() ) { // Get the group id from the first message $first_message = BP_Messages_Thread::get_first_message( (int) $thread_id ); $message_group_id = (int) bp_messages_get_meta( $first_message->id, 'group_id', true ); // group id if ( $message_group_id > 0 ) { $group_thread = (int) groups_get_groupmeta( $message_group_id, 'group_message_thread' ); if ( $group_thread > 0 && $group_thread === (int) $thread_id ) { groups_update_groupmeta( $message_group_id, 'group_message_thread', '' ); } } } // Get the message ids in order to pass to the action. $message_ids = $wpdb->get_col( $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_messages} WHERE thread_id = %d", $thread_id ) ); // WPCS: db call ok. // WPCS: cache ok. if ( bp_is_active( 'notifications' ) ) { // Delete Message Notifications. bp_messages_message_delete_notifications( $thread_id, $message_ids ); } // Delete thread messages. $query = $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_messages} WHERE thread_id = %d", $thread_id ); $wpdb->query( $query ); // db call ok; no-cache ok; // Delete messages meta. $query = $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_meta} WHERE message_id IN(%s)", implode( ',', $message_ids ) ); $wpdb->query( $query ); // db call ok; no-cache ok; // Delete thread. $query = $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d", $thread_id ); $wpdb->query( $query ); // db call ok; no-cache ok; } wp_send_json_success( array( 'type' => 'success', 'messages' => 'Thread successfully deleted.', ) ); }
Changelog
Version | Description |
---|---|
BuddyPress 3.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.