bbp_make_spam_user( int $user_id )
Mark a users topics and replies as spam when the user is marked as spam
Description
Parameters
- $user_id
-
(Optional) User ID to spam. Defaults to displayed user.
Return
(If) no user ID passed
Source
File: bp-forums/users/capabilities.php
function bbp_make_spam_user( $user_id = 0 ) {
// Use displayed user if it's not yourself
if ( empty( $user_id ) && bbp_is_single_user() && !bbp_is_user_home() )
$user_id = bbp_get_displayed_user_id();
// Bail if no user ID
if ( empty( $user_id ) )
return false;
// Bail if user ID is keymaster
if ( bbp_is_user_keymaster( $user_id ) )
return false;
// Arm the torpedos
global $wpdb;
// Get the blog IDs of the user to mark as spam
$blogs = get_blogs_of_user( $user_id, true );
// If user has no blogs, they are a guest on this site
if ( empty( $blogs ) )
$blogs[$wpdb->blogid] = array();
// Make array of post types to mark as spam
$post_types = array( bbp_get_topic_post_type(), bbp_get_reply_post_type() );
$post_types = "'" . implode( "', '", $post_types ) . "'";
// Loop through blogs and remove their posts
foreach ( (array) array_keys( $blogs ) as $blog_id ) {
// Switch to the blog ID
switch_to_blog( $blog_id );
// Get topics and replies
$posts = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_author = %d AND post_status = '%s' AND post_type IN ( {$post_types} )", $user_id, bbp_get_public_status_id() ) );
// Loop through posts and spam them
if ( !empty( $posts ) ) {
foreach ( $posts as $post_id ) {
// The routines for topics ang replies are different, so use the
// correct one based on the post type
switch ( get_post_type( $post_id ) ) {
case bbp_get_topic_post_type() :
bbp_spam_topic( $post_id );
break;
case bbp_get_reply_post_type() :
bbp_spam_reply( $post_id );
break;
}
}
}
// Switch back to current blog
restore_current_blog();
}
// Success
return true;
}
Changelog
| Version | Description |
|---|---|
| bbPress (r3405) | 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.