=== BuddyPress & BuddyBoss Private Community with PMPro - Restrict Profiles, Groups, Messaging, Forum Discussions ===
Contributors: strangerstudios, paidmembershipspro
Tags: community, private community, paid memberships pro, buddypress, buddyboss, pmpro
Requires at least: 5.2
Tested up to: 6.2
Requires PHP: 7.0
Stable tag: 1.4.1

Restrict access to communities in BuddyPress & BuddyBoss for free or premium members with the top WordPress membership plugin Paid Memberships Pro

== Description ==

### The most popular WordPress plugin for private communities.

Use BuddyPress or BuddyBoss with Paid Memberships Pro to create a members-only private community in your WordPress site. This plugin enables secure, private messaging, groups, member directories, and private profiles for members of your free or paid community.

This integration allows the site owner to control access to the most popular community features in BuddyPress and BuddyBoss.

### Restrict Community Features
Use this BuddyPress and BuddyBoss plugin to restrict your membership site for multiple user types including visitors, non-members, and members. Offer private groups, private messaging, a member directory, and more in your private social network.

* **Groups:** Restrict the ability for visitors and members to view, join, and create groups. You can also restrict access to the list of available groups in your community.
* **Messaging:** Restrict the ability for visitors and members to send public or private messages.
* **Friends:** Restrict the ability for visitors and members to send or accept friend requests.
* **Member Directories:** Restrict visitors and members from being included in the member directory.

### Restrict Forums and Community Discussions
If you include discussion boards and forums in your community, check out our [bbPress Integration](https://www.paidmembershipspro.com/add-ons/pmpro-bbpress/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-bbpress). With BuddyPress or BuddyBoss and PMPro you can:

* **Restrict Forum Discussions** by Membership Level.
* **Assign a Forum Role** by Membership Level.
* **Adjust the error message shown** when a user does not have permission to view discussions.
* **Show a member's level name** in line with their discussion replies. This helps other community members see another member's access level.

[Learn more about protecting your members-only community with Paid Memberships Pro in our documentation site](https://www.paidmembershipspro.com/add-ons/buddypress-integration/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress).

### Compatible with BuddyPress and BuddyBoss

Like BuddyPress, the BuddyBoss Platform turns your WordPress site into a robust community, with social networking features including groups, discussions, messaging, friends, and more. Community users can organize themselves into public, private, or hidden social areas with separate activity feeds and directories.

The platform is an evolution of BuddyPress and bbPress, consolidated into a single area of settings. For this reason, you can use the existing PMPro Add Ons for BuddyPress and bbPress to restrict features in BuddyBoss.

### About Paid Memberships Pro

[Paid Memberships Pro is a WordPress membership plugin](https://www.paidmembershipspro.com/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress) that puts you in control. Create what you want and release in whatever format works best for your business.

* Courses & E-Learning
* Private podcasts
* Premium Newsletters
* Private Communities
* Sell physical & digital goods

Paid Memberships Pro allows anyone to build a membership site—for free. Restrict content, accept payment, and manage subscriptions right from your WordPress admin.

Paid Memberships Pro is built "the WordPress way" with a lean core plugin and over 75 Add Ons to enhance every aspect of your membership site. Each business is different and we encourage customization. For our members we have a library of 300+ recipes to personalize your membership site.

Paid Memberships Pro is the flagship product of Stranger Studios. We are a bootstrapped company which grows when membership sites like yours grow. That means we focus our entire company towards helping you succeed.

[Try Paid Memberships Pro entirely for free on WordPress.org](https://wordpress.org/plugins/paid-memberships-pro/) and see why 100,000+ sites trust us to help them #GetPaid.

### Read More

Want more information on members-only communities, private groups and messaging, and WordPress membership sites? Have a look at:

* The [Paid Memberships Pro](https://www.paidmembershipspro.com/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress) official homepage.
* The [BuddyPress and BuddyBoss Integration for PMPro documentation page](https://www.paidmembershipspro.com/add-ons/buddypress-integration/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress).
* Also follow PMPro on [Twitter](https://twitter.com/pmproplugin), [YouTube](https://www.youtube.com/channel/UCFtMIeYJ4_YVidi1aq9kl5g) & [Facebook](https://www.facebook.com/PaidMembershipsPro/).

== Installation ==

Note: You must have [Paid Memberships Pro](https://wordpress.org/plugins/paid-memberships-pro/) and [BuddyPress](https://wordpress.org/plugins/buddypress/) or [BuddyBoss](https://www.paidmembershipspro.com/buddyboss-membership-plugin/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress) installed and activated on your site.

### Install PMPro BuddyPress from within WordPress

1. Visit the plugins page within your dashboard and select "Add New"
1. Search for "PMPro BuddyPress"
1. Locate this plugin and click "Install"
1. Activate "Paid Memberships Pro - BuddyPress Integration" through the "Plugins" menu in WordPress
1. Go to "after activation" below.

### Install PMPro BuddyPress Manually

1. Upload the `pmpro-buddypress` folder to the `/wp-content/plugins/` directory
1. Activate "Paid Memberships Pro - BuddyPress Integration" through the "Plugins" menu in WordPress
1. Go to "after activation" below.

### After Activation: Configure Plugin Settings

There are four primary settings areas in this plugin.

= 1. Select Your Preferred Registration Process =

This plugin allows you to use the BuddyPress or BuddyBoss user registration process (in place of the standard Paid Memberships Pro membership checkout process).

1. Navigate to Memberships > PMPro BuddyPress in the WordPress admin.
1. Change the "Registration Page" setting to "Use BuddyPress Registration Page".
1. Save Settings.

Note: If your membership is not free, you must use the Paid Memberships Pro membership checkout process. If you have a free community and want to allow users to register through BuddyPress or BuddyBoss, you must adjust this setting.

If you'd like members that register through the BuddyPress or BuddyBoss system to also be given a membership level, check out this guide on [setting a default level for all user registrations in WordPress](https://www.paidmembershipspro.com/apply-a-buddypress-member-type-on-membership-checkout-or-level-change/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress).

= 2. Assign the "Access Restricted" Page =
Navigate to Memberships > Settings > Pages to create or edit the "Access Restricted" page.

This is the page that visitors and users are redirected to if they cannot access restricted BuddyPress or BuddyBoss features.

= 3. Configure Membership Level Settings =
Navigate to Memberships > Settings > Membership Levels and locate the "BuddyPress Restrictions" section.

From this section you can adjust settings for how you "unlock BuddyPress" for members of this level, including:

* Group Creation
* Single Group Viewing
* Groups Page Viewing
* Joining Groups
* Public Messaging
* Private Messaging
* Send Friend Requests
* Include in Member Directory

Next, adjust the "BuddyPress Group Membership" settings to add or invite members of this level to your existing BuddyPress Groups.

If you want to adjust BuddyPress Member Types, you must first create the types through custom code. [This post explains how to add Member Types to BuddyPress](https://www.paidmembershipspro.com/apply-a-buddypress-member-type-on-membership-checkout-or-level-change/?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress).

[Read our full documentation on Membership Level Settings for your BuddyPress or BuddyBoss community here](https://www.paidmembershipspro.com/add-ons/buddypress-integration/#members?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress).

= 4. Configure Settings for Logged in Non Members =

Some of your WordPress users may not have a membership level in Paid Memberships Pro. This plugin allows you to set how BuddyPress should be locked down for these users without a membership level.

Navigate to Memberships > Settings > PMPro BuddyPress and locate the "Non-member User Settings" section.

[Read our full documentation on Non-Member Users in BuddyPress or BuddyBoss here](https://www.paidmembershipspro.com/add-ons/buddypress-integration/#non_member_user?utm_source=wordpress-org&utm_medium=readme&utm_campaign=pmpro-buddypress).

== Screenshots ==

1. **PMPro BuddyPress Settings** - Explore and manage the features of the integration plugin, including Page Settings, Membership Level Settings, and General Settings.
2. **Membership Level Settings** - Define how you want to restrict BuddyPress for each Membership Level under Memberships > Settings > Memberships Levels > Edit.
3. **Group and Member Type Settings** - Add or Invite Members to Groups and Assign Member Types by Membership Level under Memberships > Settings > Memberships Levels > Edit.

== Changelog ==
= 1.4.1 - 2023-05-09 =
* ENHANCEMENT: Support User Fields sync capability for XProfile fields. (@DarkLotus)
* ENHANCEMENT: Improved logic around the [pmpro_account] shortcode filter to allow better adjustments with the 'pmpro_buddypress_profile_account_shortcode' filter. (@kimcoleman)
* REFACTOR: Disabled the logic from update 1.3 to hide group meta. To hide the group meta please use CSS or call the functions directly in your custom plugin. (@andrewlimaza)
* BUG FIX: Fixed some strings that weren't translatable due to incorrect text domain. (@ipokkel)

= 1.4 - 2023-02-08 =
* ENHANCEMENT: Added support for Multiple Memberships Per User. This merges the settings across all user's levels and gives access to BuddyPress/BuddyBoss components.
* ENHANCEMENT: Added support for Pay By Check (pending), Approvals and other Add Ons that may set the `pmpro_hasMembershipLevel` to false when granting access to content.
* DEPRECATED: Deprecated functions: pmpro_bp_get_user_old_level_options, pmpro_bp_set_member_groups and pmpro_bp_set_member_types. Use pmpro_bp_groups_pmpro_after_all_membership_level_changes and pmpro_bp_member_types_pmpro_after_all_membership_level_changes instead.
* BUG FIX: Only show the membership tab for your own profile and not while viewing other members.

= 1.3.1 - 2022-09-13 =
* BUG FIX: Fixed an issue from v1.3 that was causing the member directory to constantly be locked in most cases.

= 1.3 - 2022-09-12 =
* ENHANCEMENT: Added "Membership" menu tab to the "View Profile" BuddyPress page.
* ENHANCEMENT: Removed "Public" or "Private" wording from the frontend when viewing groups when this feature requires a level.
* ENHANCEMENT: Removed "Public" option from XProfile field settings as this is restricted in certain cases.
* ENHANCEMENT: Improved restrictions for notifications page when BuddyPress settings are locked down (I.e. Group Notifications).
* ENHANCEMENT: Redirect away from the BuddyPress directory if the user's membership level doesn't allow access to Groups.
* ENHANCEMENT: Improved the BuddyPress Directory SQL into parts so that tweaking/customizing the filtering is easier. New filter added `pmpro_bp_directory_sql_parts`.
* BUG FIX: Fixed an issue where the initial installation would not restrict BuddyPress. By default, on initial install all features of BuddyPress are restricted to non-members.
* BUG FIX: Fixed an issue where the "Show Membership Level on Profiles" wasn't working for BuddyBoss installs.

= 1.2.9 - 2022-06-21=
* BUG FIX: Fixes an issue where logged-in user's could not access the levels page if BuddyPress registration is set as the registration page.

= 1.2.8 - 2022-05-05 =
* BUG FIX: Fixes various issue with registration redirects. Improves handling incomplete setups for registration and tidied up logic around this code. (Thanks @ideadude)
* BUG FIX: Fixes an issue where the xprofile fields were not syncing correctly. (Thanks @ipokkel)
* BUG FIX: Fixes an issue with group invites not working on level change.

= 1.2.7 - 2022-03-31 =
* ENHANCEMENT: Escape and localized strings to allow for translations and additional locales.
* ENHANCEMENT: Now showing messages where settings also apply for BuddyBoss if the plugin is active.
* BUG FIX: Fixes an issue where in some cases the $cancel_level wasn't being passed through.
* BUG FIX: Fixes a warning that the 'id' parameter is not set when visiting a group page.

= 1.2.6 - 2020-10-14 =
* BUG FIX: Fixed issue where the create group and join group buttons were not being disabled for users who shouldn't have had permission to create or join groups.

= 1.2.5 - 2020-04-06 =
* BUG FIX: Fixed issue where users were redirected away from the profile page if all of BuddyPress was locked down.
* BUG FIX: Fixed issues with adding users to groups.
* BUG FIX: Fixed issues with removing users from invited groups if their level changed.
* BUG FIX/ENHANCEMENT: Stopping redirect loops on the levels page in some cases.

= 1.2.4 - 2019-06-28 =
* BUG FIX: Fixed issue where the WP profile was still being restricted from users without access to BP.
* BUG FIX: Fixed issue where the 'restrict all of BuddyPress' setting wasn't being applied correctly when levels were set to use non-member settings.

= 1.2.3 =
* BUG FIX: Only getting members in directory if levels exist.
* BUG FIX: Now locking down all of BuddyPress when a level's settings are set to use non-member settings and BuddyPress is locked down for non-members.
* BUG FIX: Fixed issue with admin menu link sometimes pointing to the wrong address.
* BUG FIX: Hiding friend request and messaging buttons if user doesn't have access.
* BUG FIX: Fixed issue where all users were sometimes displayed as admins in Edit Groups screen.
* BUG FIX: Non-members were being restricted incorrectly from BuddyPress modules.
* ENHANCEMENT: Now using constants in place of numbers to make some of the settings in the code more readable.

= 1.2.2 =
* BUG FIX: When locking down "all of BuddyPress", no longer redirecting away from the BuddyPress registration page.

= 1.2.1 =
* BUG FIX: Added check that BuddyPress is active before trying to update member types when levels change.
* BUG FIX: Removed echo statement that was causing errors when syncing profile fields.
* BUG FIX: Fixed warnings related to default options on level settings.
* BUG FIX: Fixed issue where you couldn't choose "use non-member settings" on the level settings.
* BUG FIX: Now including members of hidden levels in the BuddyPress directory.
* BUG FIX: Fixed issue where the Friends Requests page would show a list of all members instead of just friend requests.

= 1.2 =
* ENHANCEMENT: Further integration with PMPro Approvals. If you have PMPro Approvals v1.1 or higher installed, users will have their groups and member types adjusted when they are approved, denied, or reset from the approvals table.

= 1.1.1 =
* BUG FIX: Fixed issue where all users were hidden from the member directory even if you weren't trying to lock down your directory.
* BUG FIX: Fixed issues with BuddyPress Profile Search and related plugins.
* BUG FIX: Changed how we are testing for PMPro and BuddyPress activation.

= 1.1 =
* BUG FIX: Fixed fatal errors when PMPro or BuddyPress isn't activated.
* BUG FIX: Fixed bug where membership level changes were creatinig fatal errors if Groups was not active.
* BUG FIX: Fixed bug where the members directory was not being filtered correctly.
* BUG FIX: Fixed bug where logged in users were being redirected to the BuddyPress registration page even though logged in users can't register.
* ENHANCEMENT: Doublechecking pmpro_hasMembershipLevel so plugins like PMPro Approvals can still filter which levels are included when calculating restrictions.

= 1.0 =
* Initial WP.org release.
