bbp_privatize_forum( int $forum_id,  $current_visibility = '' )

Mark the forum as private

Description

Parameters

$forum_id

(Optional) Forum id

Return

(bool) False on failure, true on success

Source

File: bp-forums/forums/functions.php

856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
function bbp_privatize_forum( $forum_id = 0, $current_visibility = '' ) {
 
    $forum_id = bbp_get_forum_id( $forum_id );
 
    do_action( 'bbp_privatize_forum'$forum_id );
 
    // Only run queries if visibility is changing
    if ( bbp_get_private_status_id() !== $current_visibility ) {
 
        // Get hidden forums
        $hidden = bbp_get_hidden_forum_ids();
 
        // Find this forum in the array
        if ( in_array( $forum_id, $hidden ) ) {
 
            $offset = array_search( $forum_id, $hidden );
 
            // Splice around it
            array_splice( $hidden, $offset, 1 );
 
            // Update hidden forums minus this one
            update_option( '_bbp_hidden_forums', array_unique( array_filter( array_values( $hidden ) ) ) );
        }
 
        // Add to '_bbp_private_forums' site option
        $private   = bbp_get_private_forum_ids();
        $private[] = $forum_id;
        update_option( '_bbp_private_forums', array_unique( array_filter( array_values( $private ) ) ) );
 
        // Update forums visibility setting
        global $wpdb;
        $wpdb->update( $wpdb->posts, array( 'post_status' => bbp_get_private_status_id() ), array( 'ID' => $forum_id ) );
        wp_transition_post_status( bbp_get_private_status_id(), $current_visibility, get_post( $forum_id ) );
        bbp_clean_post_cache( $forum_id );
    }
 
    do_action( 'bbp_privatized_forum', $forum_id );
 
    return $forum_id;
}

Changelog

Changelog
Version Description
bbPress (r2746) 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.