bbp_set_current_user_default_role()
Add the default role to the current user if needed
Description
This function will bail if the forum is not global in a multisite installation of WordPress, or if the user is marked as spam or deleted.
Return
(If) not multisite, not global, or user is deleted/spammed
Source
File: bp-forums/users/capabilities.php
function bbp_set_current_user_default_role() { /** Sanity ****************************************************************/ // Bail if deactivating Forums if ( bbp_is_deactivation() ) return; // Catch all, to prevent premature user initialization if ( ! did_action( 'set_current_user' ) ) return; // Bail if not logged in or already a member of this site if ( ! is_user_logged_in() ) return; // Get the current user ID $user_id = bbp_get_current_user_id(); // Bail if user already has a forums role if ( bbp_get_user_role( $user_id ) ) return; // Bail if user is marked as spam or is deleted if ( bbp_is_user_inactive( $user_id ) ) return; /** Ready *****************************************************************/ // Load up Forums once $bbp = bbpress(); // Get whether or not to add a role to the user account $add_to_site = bbp_allow_global_access(); // Get the current user's WordPress role. Set to empty string if none found. $user_role = bbp_get_user_blog_role( $user_id ); // Get the role map $role_map = bbp_get_user_role_map(); /** Forum Role ************************************************************/ // Use a mapped role if ( isset( $role_map[$user_role] ) ) { $new_role = $role_map[$user_role]; // Use the default role } else { $new_role = bbp_get_default_role(); } /** Add or Map ************************************************************/ // Add the user to the site if ( true === $add_to_site ) { // Make sure Forums roles are added bbp_add_forums_roles(); $bbp->current_user->add_role( $new_role ); // Don't add the user, but still give them the correct caps dynamically } else { $bbp->current_user->caps[$new_role] = true; $bbp->current_user->get_role_caps(); } }
Changelog
Version | Description |
---|---|
bbPress (r3380) | 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.