bbp_make_ham_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 unspam. Defaults to displayed user.
Return
(If) no user ID passed
Source
File: bp-forums/users/capabilities.php
function bbp_make_ham_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_spam_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_unspam_topic( $post_id ); break; case bbp_get_reply_post_type() : bbp_unspam_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.