bp_activity_ham_all_user_data( int $user_id )
Mark all of the user’s activity as ham (not spam).
Description
Parameters
- $user_id
-
(Required) ID of the user whose activity is being hammed.
Return
(bool)
Source
File: bp-activity/bp-activity-functions.php
function bp_activity_ham_all_user_data( $user_id = 0 ) {
global $wpdb;
// Do not delete user data unless a logged in user says so.
if ( empty( $user_id ) || ! is_user_logged_in() ) {
return false;
}
// Get all the user's activities.
$activities = bp_activity_get( array(
'display_comments' => 'stream',
'filter' => array( 'user_id' => $user_id ),
'show_hidden' => true,
'spam' => 'all'
) );
$bp = buddypress();
// Mark each as not spam.
foreach ( (array) $activities['activities'] as $activity ) {
// Create an activity object.
$activity_obj = new BP_Activity_Activity;
foreach ( $activity as $k => $v ) {
$activity_obj->$k = $v;
}
// Mark as not spam.
bp_activity_mark_as_ham( $activity_obj );
/*
* If Akismet is present, update the activity history meta.
*
* This is usually taken care of when BP_Activity_Activity::save() happens, but
* as we're going to be updating all the activity statuses directly, for efficiency,
* we need to update manually.
*/
if ( ! empty( $bp->activity->akismet ) ) {
$bp->activity->akismet->update_activity_ham_meta( $activity_obj );
}
// Tidy up.
unset( $activity_obj );
}
// Mark all of this user's activities as not spam.
$wpdb->query( $wpdb->prepare( "UPDATE {$bp->activity->table_name} SET is_spam = 0 WHERE user_id = %d", $user_id ) );
/**
* Fires after all activity data from a user has been marked as ham.
*
* @since BuddyPress 1.6.0
*
* @param int $user_id ID of the user whose activity is being marked as ham.
* @param array $activities Array of activity items being marked as ham.
*/
do_action( 'bp_activity_ham_all_user_data', $user_id, $activities['activities'] );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.6.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.