bp_legacy_theme_ajax_messages_send_reply()
Send a private message reply to a thread via a POST request.
Description Description
Return Return
(string|null) HTML
Source Source
File: bp-templates/bp-legacy/buddypress-functions.php
function bp_legacy_theme_ajax_messages_send_reply() { if ( ! bp_is_post_request() ) { return; } check_ajax_referer( 'messages_send_message' ); $thread_id = (int) $_POST['thread_id']; // Cannot respond to a thread you're not already a recipient on. if ( ! bp_current_user_can( 'bp_moderate' ) && ( ! messages_is_valid_thread( $thread_id ) || ! messages_check_thread_access( $thread_id ) ) ) { echo "-1<div id='message' class='error'><p>" . __( 'There was a problem sending that reply. Please try again.', 'buddypress' ) . '</p></div>'; die; } $result = messages_new_message( array( 'thread_id' => $thread_id, 'content' => $_REQUEST['content'] ) ); if ( !empty( $result ) ) { // Pretend we're in the message loop. global $thread_template; bp_thread_has_messages( array( 'thread_id' => $thread_id ) ); // Set the current message to the 2nd last. $thread_template->message = end( $thread_template->thread->messages ); $thread_template->message = prev( $thread_template->thread->messages ); // Set current message to current key. $thread_template->current_message = key( $thread_template->thread->messages ); // Now manually iterate message like we're in the loop. bp_thread_the_message(); // Manually call oEmbed // this is needed because we're not at the beginning of the loop. bp_messages_embed(); // Add new-message css class. add_filter( 'bp_get_the_thread_message_css_class', function( $retval ) { $retval[] = 'new-message'; return $retval; } ); // Output single message template part. bp_get_template_part( 'members/single/messages/message' ); // Clean up the loop. bp_thread_messages(); } else { echo "-1<div id='message' class='error'><p>" . __( 'There was a problem sending that reply. Please try again.', 'buddypress' ) . '</p></div>'; } exit; }
Changelog Changelog
Version | Description |
---|---|
1.2.0 | Introduced. |