bbp_make_ham_user( int $user_id )
Mark a users topics and replies as spam when the user is marked as spam
Description Description
Parameters Parameters
- $user_id
-
(Optional) User ID to unspam. Defaults to displayed user.
Return Return
(bool) If no user ID passed.
Source Source
File: includes/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 $bbp_db = bbp_db(); // 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[ $bbp_db->blogid ] = array(); } // Get 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 ) . "'"; // Get array of statuses to unmark as spam $post_statuses = array( bbp_get_spam_status_id() ); $post_statuses = "'" . implode( "', '", $post_statuses ) . "'"; // Loop through blogs and remove their posts foreach ( (array) array_keys( $blogs ) as $blog_id ) { // Switch to the site ID bbp_switch_to_site( $blog_id ); // Get topics and replies $query = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_author = %d AND post_status IN ( {$post_statuses} ) AND post_type IN ( {$post_types} )", $user_id ); $posts = $bbp_db->get_col( $query ); // 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 site bbp_restore_current_site(); } // Update topic & reply counts bbp_update_user_topic_count( $user_id, bbp_get_user_topic_count_raw( $user_id ) ); bbp_update_user_reply_count( $user_id, bbp_get_user_reply_count_raw( $user_id ) ); // Update last posted (to now) bbp_update_user_last_posted( $user_id ); // Success return true; }
Changelog Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |