bp_blogs_sync_activity_edit_to_post_comment( BP_Activity_Activity $activity )
Updates the blog comment when the associated activity comment is edited.
Description
Parameters
- $activity
-
(Required) The activity object.
Source
File: bp-blogs/bp-blogs-activity.php
function bp_blogs_sync_activity_edit_to_post_comment( BP_Activity_Activity $activity ) {
// This is a new entry, so stop!
// We only want edits!
if ( empty( $activity->id ) || bp_disable_blogforum_comments() ) {
return;
}
// fetch parent activity item
$parent_activity = new BP_Activity_Activity( $activity->item_id );
// if parent activity isn't a post type having the buddypress-activity support for comments, stop now!
if ( ! bp_activity_type_supports( $parent_activity->type, 'post-type-comment-tracking' ) ) {
return;
}
$post_type = bp_activity_post_type_get_tracking_arg( $parent_activity->type, 'post_type' );
// No associated post type for this activity comment, stop.
if ( ! $post_type ) {
return;
}
// Try to see if a corresponding blog comment exists.
$post_comment_id = bp_activity_get_meta( $activity->id, "bp_blogs_{$post_type}_comment_id" );
if ( empty( $post_comment_id ) ) {
return;
}
// Handle multisite.
switch_to_blog( $parent_activity->item_id );
// Get the comment status
$post_comment_status = wp_get_comment_status( $post_comment_id );
$old_comment_status = $post_comment_status;
// No need to edit the activity, as it's the activity who's updating the comment
remove_action( 'transition_comment_status', 'bp_activity_transition_post_type_comment_status', 10 );
remove_action( 'bp_activity_post_type_comment', 'bp_blogs_comment_sync_activity_comment', 10 );
if ( 1 === $activity->is_spam && 'spam' !== $post_comment_status ) {
wp_spam_comment( $post_comment_id );
} elseif ( ! $activity->is_spam ) {
if ( 'spam' === $post_comment_status ) {
wp_unspam_comment( $post_comment_id );
} elseif ( 'trash' === $post_comment_status ) {
wp_untrash_comment( $post_comment_id );
} else {
// Update the blog post comment.
wp_update_comment( array(
'comment_ID' => $post_comment_id,
'comment_content' => $activity->content,
) );
}
}
// Restore actions
add_action( 'transition_comment_status', 'bp_activity_transition_post_type_comment_status', 10, 3 );
add_action( 'bp_activity_post_type_comment', 'bp_blogs_comment_sync_activity_comment', 10, 4 );
restore_current_blog();
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.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.