BP_Activity_Activity::delete( array $args = array() )
Delete activity items from the database.
Description
To delete a specific activity item, pass an ‘id’ parameter. Otherwise use the filters.
Parameters
- $args
-
(Optional) @int $id Optional. The ID of a specific item to delete. @string $action Optional. The action to filter by. @string $content Optional. The content to filter by. @string $component Optional. The component name to filter by. @string $type Optional. The activity type to filter by. @string $primary_link Optional. The primary URL to filter by. @int $user_id Optional. The user ID to filter by. @int $item_id Optional. The associated item ID to filter by. @int $secondary_item_id Optional. The secondary associated item ID to filter by. @string $date_recorded Optional. The date to filter by. @int $hide_sitewide Optional. Default: false.
Default value: array()
Return
(array|bool) An array of deleted activity IDs on success, false on failure.
Source
File: bp-activity/classes/class-bp-activity-activity.php
public static function delete( $args = array() ) { global $wpdb; $bp = buddypress(); $r = wp_parse_args( $args, array( 'id' => false, 'action' => false, 'content' => false, 'component' => false, 'type' => false, 'primary_link' => false, 'user_id' => false, 'item_id' => false, 'secondary_item_id' => false, 'date_recorded' => false, 'hide_sitewide' => false ) ); // Setup empty array from where query arguments. $where_args = array(); // ID. if ( ! empty( $r['id'] ) ) { $where_args[] = $wpdb->prepare( "id = %d", $r['id'] ); } // User ID. if ( ! empty( $r['user_id'] ) ) { $where_args[] = $wpdb->prepare( "user_id = %d", $r['user_id'] ); } // Action. if ( ! empty( $r['action'] ) ) { $where_args[] = $wpdb->prepare( "action = %s", $r['action'] ); } // Content. if ( ! empty( $r['content'] ) ) { $where_args[] = $wpdb->prepare( "content = %s", $r['content'] ); } // Component. if ( ! empty( $r['component'] ) ) { $where_args[] = $wpdb->prepare( "component = %s", $r['component'] ); } // Type. if ( ! empty( $r['type'] ) ) { $where_args[] = $wpdb->prepare( "type = %s", $r['type'] ); } // Primary Link. if ( ! empty( $r['primary_link'] ) ) { $where_args[] = $wpdb->prepare( "primary_link = %s", $r['primary_link'] ); } // Item ID. if ( ! empty( $r['item_id'] ) ) { $where_args[] = $wpdb->prepare( "item_id = %d", $r['item_id'] ); } // Secondary item ID. if ( ! empty( $r['secondary_item_id'] ) ) { $where_args[] = $wpdb->prepare( "secondary_item_id = %d", $r['secondary_item_id'] ); } // Date Recorded. if ( ! empty( $r['date_recorded'] ) ) { $where_args[] = $wpdb->prepare( "date_recorded = %s", $r['date_recorded'] ); } // Hidden sitewide. if ( ! empty( $r['hide_sitewide'] ) ) { $where_args[] = $wpdb->prepare( "hide_sitewide = %d", $r['hide_sitewide'] ); } // Bail if no where arguments. if ( empty( $where_args ) ) { return false; } // Join the where arguments for querying. $where_sql = 'WHERE ' . join( ' AND ', $where_args ); // Fetch all activities being deleted so we can perform more actions. $activities = $wpdb->get_results( "SELECT * FROM {$bp->activity->table_name} {$where_sql}" ); /** * Action to allow intercepting activity items to be deleted. * * @since BuddyPress 2.3.0 * * @param array $activities Array of activities. * @param array $r Array of parsed arguments. */ do_action_ref_array( 'bp_activity_before_delete', array( $activities, $r ) ); // Attempt to delete activities from the database. $deleted = $wpdb->query( "DELETE FROM {$bp->activity->table_name} {$where_sql}" ); // Bail if nothing was deleted. if ( empty( $deleted ) ) { return false; } /** * Action to allow intercepting activity items just deleted. * * @since BuddyPress 2.3.0 * * @param array $activities Array of activities. * @param array $r Array of parsed arguments. */ do_action_ref_array( 'bp_activity_after_delete', array( $activities, $r ) ); // Pluck the activity IDs out of the $activities array. $activity_ids = wp_parse_id_list( wp_list_pluck( $activities, 'id' ) ); // Handle accompanying activity comments and meta deletion. if ( ! empty( $activity_ids ) ) { // Delete all activity meta entries for activity items. BP_Activity_Activity::delete_activity_meta_entries( $activity_ids ); // Setup empty array for comments. $comment_ids = array(); // Loop through activity ids and attempt to delete comments. foreach ( $activity_ids as $activity_id ) { // Attempt to delete comments. $comments = BP_Activity_Activity::delete( array( 'type' => 'activity_comment', 'item_id' => $activity_id ) ); // Merge IDs together. if ( ! empty( $comments ) ) { $comment_ids = array_merge( $comment_ids, $comments ); } } // Merge activity IDs with any deleted comment IDs. if ( ! empty( $comment_ids ) ) { $activity_ids = array_unique( array_merge( $activity_ids, $comment_ids ) ); } } return $activity_ids; }
Changelog
Version | Description |
---|---|
BuddyPress 1.2.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.