bp_legacy_theme_new_activity_comment()
Posts new Activity comments received 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_new_activity_comment() { global $activities_template; $bp = buddypress(); if ( ! bp_is_post_request() ) { return; } // Check the nonce. check_admin_referer( 'new_activity_comment', '_wpnonce_new_activity_comment' ); if ( ! is_user_logged_in() ) { exit( '-1' ); } $feedback = __( 'There was an error posting your reply. Please try again.', 'buddypress' ); if ( empty( $_POST['content'] ) ) { exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html__( 'Please do not leave the comment area blank.', 'buddypress' ) . '</p></div>' ); } if ( empty( $_POST['form_id'] ) || empty( $_POST['comment_id'] ) || ! is_numeric( $_POST['form_id'] ) || ! is_numeric( $_POST['comment_id'] ) ) { exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $feedback ) . '</p></div>' ); } $activity_id = (int) $_POST['form_id']; $activity_item = new BP_Activity_Activity( $activity_id ); if ( ! bp_activity_user_can_read( $activity_item ) ) { exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $feedback ) . '</p></div>' ); } $comment_id = bp_activity_new_comment( array( 'activity_id' => $activity_id, 'content' => $_POST['content'], 'parent_id' => $_POST['comment_id'], 'error_type' => 'wp_error' ) ); if ( is_wp_error( $comment_id ) ) { exit( '-1<div id="message" class="error bp-ajax-message"><p>' . esc_html( $comment_id->get_error_message() ) . '</p></div>' ); } // Load the new activity item into the $activities_template global. bp_has_activities( 'display_comments=stream&hide_spam=false&show_hidden=true&include=' . $comment_id ); // Swap the current comment with the activity item we just loaded. if ( isset( $activities_template->activities[0] ) ) { $activities_template->activity = new stdClass(); $activities_template->activity->id = $activities_template->activities[0]->item_id; $activities_template->activity->current_comment = $activities_template->activities[0]; // Because the whole tree has not been loaded, we manually // determine depth. $depth = 1; $parent_id = (int) $activities_template->activities[0]->secondary_item_id; while ( $parent_id !== (int) $activities_template->activities[0]->item_id ) { $depth++; $p_obj = new BP_Activity_Activity( $parent_id ); $parent_id = (int) $p_obj->secondary_item_id; } $activities_template->activity->current_comment->depth = $depth; } // Get activity comment template part. bp_get_template_part( 'activity/comment' ); unset( $activities_template ); exit; }
Changelog Changelog
Version | Description |
---|---|
1.2.0 | Introduced. |