bp_blogs_sync_delete_from_activity_comment( bool $retval, int $parent_activity_id, int $activity_id, bool $deleted )
Deletes the blog comment when the associated activity comment is deleted.
Description
Note: This is hooked on the ‘bp_activity_delete_comment_pre’ filter instead of the ‘bp_activity_delete_comment’ action because we need to fetch the activity comment children before they are deleted.
Parameters
- $retval
-
(Required) Whether BuddyPress should continue or not.
- $parent_activity_id
-
(Required) The parent activity ID for the activity comment.
- $activity_id
-
(Required) The activity ID for the pending deleted activity comment.
- $deleted
-
(Required) Whether the comment was deleted or not.
Return
(bool)
Source
File: bp-blogs/bp-blogs-activity.php
function bp_blogs_sync_delete_from_activity_comment( $retval, $parent_activity_id, $activity_id, &$deleted ) {
// Check if parent activity is a blog post.
$parent_activity = new BP_Activity_Activity( $parent_activity_id );
// if parent activity isn't a post type having the buddypress-activity support, stop now!
if ( ! bp_activity_type_supports( $parent_activity->type, 'post-type-comment-tracking' ) ) {
return $retval;
}
// Fetch the activity comments for the activity item.
$activity = bp_activity_get( array(
'in' => $activity_id,
'display_comments' => 'stream',
'spam' => 'all',
) );
// Get all activity comment IDs for the pending deleted item.
$activity_ids = bp_activity_recurse_comments_activity_ids( $activity );
$activity_ids[] = $activity_id;
// Handle multisite
// switch to the blog where the comment was made.
switch_to_blog( $parent_activity->item_id );
// Remove associated blog comments.
bp_blogs_remove_associated_blog_comments( $activity_ids, current_user_can( 'moderate_comments' ) );
// Multisite again!
restore_current_blog();
// Rebuild activity comment tree
// emulate bp_activity_delete_comment().
BP_Activity_Activity::rebuild_activity_comment_tree( $parent_activity_id );
// Avoid the error message although the comments were successfully deleted
$deleted = true;
// We're overriding the default bp_activity_delete_comment() functionality
// so we need to return false.
return false;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.5.0 Add the $delected parameter | BuddyPress 2.5.0 Add the $delected parameter |
| 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.