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. |