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

405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
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

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.