{"id":9945,"date":"2010-08-14T15:15:07","date_gmt":"2010-08-14T15:15:07","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/buddypress-registration-groups-1\/"},"modified":"2026-08-20T03:03:55","modified_gmt":"2026-08-20T03:03:55","slug":"buddypress-registration-groups-1","status":"publish","type":"plugin","link":"https:\/\/jv.wordpress.org\/plugins\/buddypress-registration-groups-1\/","author":5743877,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.2","stable_tag":"1.5.2","tested":"7.0.4","requires":"6.1","requires_php":"7.4","requires_plugins":null,"header_name":"BuddyPress Registration Groups","header_author":"Eric Johnson","header_description":"","assets_banners_color":"","last_updated":"2026-08-20 03:03:55","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&hosted_button_id=TYJT5VMV8YMVQ","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/buddypress-registration-groups-1\/","header_author_uri":"http:\/\/hardlyneutral.com\/","rating":4.9,"author_block_rating":0,"active_installs":90,"downloads":39685,"num_ratings":7,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"hardlyneutral","date":"2026-08-16 13:03:06"},"1.5.2":{"tag":"1.5.2","author":"hardlyneutral","date":"2026-08-20 03:03:55"},"Release_0.8":{"tag":"Release_0.8","author":"hardlyneutral","date":"2013-06-12 01:54:37"},"Release_0.9":{"tag":"Release_0.9","author":"hardlyneutral","date":"2013-11-30 07:17:16"},"Release_1.0":{"tag":"Release_1.0","author":"hardlyneutral","date":"2013-12-02 23:04:20"},"Release_1.0.1":{"tag":"Release_1.0.1","author":"hardlyneutral","date":"2013-12-17 14:05:39"},"Release_1.0.2":{"tag":"Release_1.0.2","author":"hardlyneutral","date":"2015-04-19 14:38:26"},"Release_1.0.3":{"tag":"Release_1.0.3","author":"hardlyneutral","date":"2015-06-13 21:14:56"},"Release_1.1.0":{"tag":"Release_1.1.0","author":"hardlyneutral","date":"2015-12-13 21:23:47"},"Release_1.1.1":{"tag":"Release_1.1.1","author":"hardlyneutral","date":"2015-12-14 15:16:30"},"Release_1.1.2":{"tag":"Release_1.1.2","author":"hardlyneutral","date":"2015-12-19 19:08:40"},"Release_1.1.3":{"tag":"Release_1.1.3","author":"hardlyneutral","date":"2018-01-18 20:04:35"},"Release_1.2.0":{"tag":"Release_1.2.0","author":"hardlyneutral","date":"2018-01-20 17:08:48"},"Release_1.2.1":{"tag":"Release_1.2.1","author":"hardlyneutral","date":"2018-02-04 16:31:02"}},"upgrade_notice":{"1.5.2":"<ul>\n<li>Security and hardening follow-up to 1.5.1: closes a REST-signup bypass of &quot;Require Group Selection&quot; and enforces radio-button limits on the server. No new settings and no visual changes. Recommended for all sites.<\/li>\n<\/ul>","1.5.1":"<ul>\n<li>Hardening, bug-fix, and accessibility release after a full end-to-end audit on live WordPress and BuddyPress. No new settings and no visual changes. Safe to upgrade.<\/li>\n<\/ul>","1.5.0":"<ul>\n<li>Adds optional Group Sections for organizing the registration form into multiple titled group lists. No behavior changes unless sections are configured. Safe to upgrade.<\/li>\n<\/ul>","1.4.0":"<ul>\n<li>Adds the optional &quot;Require Group Selection&quot; setting and preserves group selections when signup validation fails. No behavior changes unless the new setting is enabled. Safe to upgrade.<\/li>\n<\/ul>","1.3.0":"<ul>\n<li>Major compatibility release for current WordPress and BuddyPress. Fixes group joining on single-site installs, which had been broken since BuddyPress 14. Upgrade immediately.<\/li>\n<\/ul>","1.2.1":"<ul>\n<li>Maintenance update. No changes to core functionality. Safe to upgrade.<\/li>\n<\/ul>","1.2.0":"<ul>\n<li>New minor version! Includes internationalization. No changes to core functionality. Safe to upgrade.<\/li>\n<\/ul>","1.1.3":"<ul>\n<li>Maintenance release. Tested plugin as functional with both WordPress 4.9.2 and BuddyPress 2.9.2. Safe to upgrade.<\/li>\n<\/ul>","1.1.2":"<ul>\n<li>Maintenance release. Tested plugin as functional with the recent BuddyPress 2.4.3 update. Safe to upgrade.<\/li>\n<\/ul>","1.1.1":"<ul>\n<li>Added an option to display groups as radio buttons. Safe to upgrade.<\/li>\n<\/ul>","1.1.0":"<ul>\n<li>Tested plugin as functional with WordPress 4.4 and BuddyPress 2.4.2. Safe to upgrade.<\/li>\n<\/ul>","1.0.3":"<ul>\n<li>Tested plugin as functional with WordPress 4.2.2 and BuddyPress 2.3.1. Safe to upgrade.<\/li>\n<\/ul>","1.0.2":"<ul>\n<li>Bug fix for CSS display issue. Tested plugin as functional with WordPress 4.1.1 and BuddyPress 2.2.2.1. Safe to upgrade.<\/li>\n<\/ul>","1.0.1":"<ul>\n<li>Tested plugin as functional with WordPress 3.8 and BuddyPress 1.9. Safe to upgrade.<\/li>\n<\/ul>","1.0":"<p>This version is a major update that adds a brand new admin section!<\/p>","0.9":"<p>This version is a major update that replaces deprecated calls, fixes compatibility issues with the latest versions of WordPress and BuddyPress, and improves code quality. Upgrade immediately.<\/p>","0.8":"<p>This version addresses an issue with only showing 20 groups on the registration page. See Changelog for details.<\/p>","0.6":"<p>This version addresses an issue with group names not displaying correctly in the timeline. Upgrade immediately.<\/p>","0.5":"<p>This version changes the display order of groups on the registration page to alphabetical.<\/p>","0.4":"<p>This version addresses a minor styling issue and an error shown on user activation if no groups were selected during registration. Upgrade immediately.<\/p>","0.3":"<p>This version addresses several functionality issues. Upgrade immediately.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":"1","5":"6"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3649738,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3649738,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3649738,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.0","1.5.2","Release_0.8","Release_0.9","Release_1.0","Release_1.0.1","Release_1.0.2","Release_1.0.3","Release_1.1.0","Release_1.1.1","Release_1.1.2","Release_1.1.3","Release_1.2.0","Release_1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3655688,"resolution":"1","location":"assets","locale":"","width":1402,"height":898},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3655688,"resolution":"2","location":"assets","locale":"","width":1402,"height":786},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3655688,"resolution":"3","location":"assets","locale":"","width":1402,"height":898},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3655688,"resolution":"4","location":"assets","locale":"","width":2156,"height":5832},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3655688,"resolution":"5","location":"assets","locale":"","width":1402,"height":898},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3655688,"resolution":"6","location":"assets","locale":"","width":1402,"height":1034},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3655688,"resolution":"7","location":"assets","locale":"","width":1402,"height":1196}},"screenshots":{"1":"Groups shown as a list of checkboxes on the new user registration page.","2":"Groups shown as a list of checkboxes in a scrollable container on the new user registration page.","3":"Groups shown as a list of radio buttons on the new user registration page.","4":"The admin settings page, including the per-group options table and the Group Sections editor.","5":"Per-group options in action: an auto-join group shown as a locked \"(automatic)\" entry and a group checked by default.","6":"The \"Require Group Selection\" setting in action: signup blocked with an inline error until at least one group is selected.","7":"Group Sections in action: the registration form organized into curated \"Interests\" and \"Activities\" sections, each with its own title, description, and assigned groups."}},"plugin_section":[],"plugin_tags":[152018,204,353,441,603],"plugin_category":[44,51,58],"plugin_contributors":[83067],"plugin_business_model":[],"class_list":["post-9945","plugin","type-plugin","status-publish","hentry","plugin_tags-autojoin","plugin_tags-buddypress","plugin_tags-groups","plugin_tags-multisite","plugin_tags-registration","plugin_category-discussion-and-community","plugin_category-multisite","plugin_category-user-management","plugin_contributors-hardlyneutral","plugin_committers-hardlyneutral"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/icon.svg?rev=3649738","icon":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/icon.svg?rev=3649738","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-1.png?rev=3655688","caption":"Groups shown as a list of checkboxes on the new user registration page."},{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-2.png?rev=3655688","caption":"Groups shown as a list of checkboxes in a scrollable container on the new user registration page."},{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-3.png?rev=3655688","caption":"Groups shown as a list of radio buttons on the new user registration page."},{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-4.png?rev=3655688","caption":"The admin settings page, including the per-group options table and the Group Sections editor."},{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-5.png?rev=3655688","caption":"Per-group options in action: an auto-join group shown as a locked \"(automatic)\" entry and a group checked by default."},{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-6.png?rev=3655688","caption":"The \"Require Group Selection\" setting in action: signup blocked with an inline error until at least one group is selected."},{"src":"https:\/\/ps.w.org\/buddypress-registration-groups-1\/assets\/screenshot-7.png?rev=3655688","caption":"Group Sections in action: the registration form organized into curated \"Interests\" and \"Activities\" sections, each with its own title, description, and assigned groups."}],"raw_content":"<!--section=description-->\n<p>This plugin is built to display BuddyPress groups on the new user registration page. Groups can be displayed as:<\/p>\n\n<ul>\n<li>a list of checkboxes<\/li>\n<li>a list of checkboxes in a scrollable container<\/li>\n<li>a list of radio buttons<\/li>\n<\/ul>\n\n<p>New users will automatically join any of the groups selected during the registration process.<\/p>\n\n<p>Options are available in the admin area to configure the title of the groups list on the registration page, the\ndescription of the groups list, whether private groups are visible to new users, the order in which groups are\ndisplayed, and how many groups will be visible.<\/p>\n\n<p>Per-group options let you fine-tune individual groups: hide a group from the registration form, pre-check a group\nby default, or mark a group as auto-join so every new user becomes a member automatically. Auto-join groups can be\nleft off the form entirely or shown as pre-checked, locked entries labeled \"(automatic)\".<\/p>\n\n<p>An optional \"Require Group Selection\" setting (off by default) prevents signup from completing until the registrant\nselects at least one group. The requirement is validated on the server when the form is submitted, works with both\ncheckbox and radio button display modes, and is skipped automatically if no selectable groups exist so registration\nis never blocked by a misconfiguration.<\/p>\n\n<p>Optional Group Sections let you organize the registration form into multiple titled sections \u2014 for example\n\"Interests\" and \"Regions\" \u2014 each with its own description and its own curated set of groups. While at least one\nsection is configured, the form offers only the groups you assigned, each in exactly one section, and with the\nradio button display registrants can select one group per section. Leave the sections empty to keep the classic\nsingle list; existing installations render exactly as before.<\/p>\n\n<p>Requires BuddyPress with the Groups component enabled (BuddyPress 7.0 or newer recommended; tested with BuddyPress 14.5).<\/p>\n\n<h3>Custom Styles<\/h3>\n\n<p>This plugin includes specific CSS for changing the way content is displayed. The default CSS will place the group after the \"Profile Details\" section and before the \"Complete Sign Up\" button on the register page. You can view <code>includes\/styles.css<\/code> in this plugin directory to see how to target each element.<\/p>\n\n<p>Here is a list of the current selectors used in <code>includes\/styles.css<\/code>.<\/p>\n\n<p><strong>Groups section:<\/strong><\/p>\n\n<pre><code>#registration-groups-section {\n    float: right;\n    width: 48%;\n}\n<\/code><\/pre>\n\n<p><strong>Checkboxes:<\/strong><\/p>\n\n<pre><code>.reg_groups_group_checkbox {\n    margin: 0 5px 0 0;\n}\n<\/code><\/pre>\n\n<p><strong>Form labels:<\/strong><\/p>\n\n<pre><code>#buddypress .standard-form label.reg_groups_group_label,\n.reg_groups_group_label {\n    display: inline;\n    font-weight: normal;\n}\n<\/code><\/pre>\n\n<p><strong>Groups section - responsive:<\/strong><\/p>\n\n<pre><code>@media only screen and (max-width: 480px) {\n    #registration-groups-section {\n        float: none;\n        width: 100%;\n    }\n}\n<\/code><\/pre>\n\n<p><strong>List items:<\/strong><\/p>\n\n<pre><code>.reg_groups_item {\n    list-style: none;\n}\n<\/code><\/pre>\n\n<p><strong>No groups message:<\/strong><\/p>\n\n<pre><code>.reg_groups_none {\n    font-style: italic;\n    color: gray;\n}\n<\/code><\/pre>\n\n<p><strong>Multiselect:<\/strong><\/p>\n\n<pre><code>.reg_groups_list_multiselect {\n    height: 8em;\n        border: 1px solid #ccc;\n        background: #fafafa;\n        padding: 6px;\n    overflow: auto;\n}\n<\/code><\/pre>\n\n<p><strong>Accessibility fieldsets (invisible wrappers naming each group of inputs for screen readers):<\/strong><\/p>\n\n<pre><code>#buddypress #registration-groups-section .reg_groups_fieldset,\n#registration-groups-section .reg_groups_fieldset {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    min-width: 0;\n    background: transparent;\n}\n<\/code><\/pre>\n\n<p><strong>Curated group sections:<\/strong><\/p>\n\n<pre><code>#buddypress #registration-groups-section .reg_groups_section,\n#registration-groups-section .reg_groups_section {\n    margin: 0 0 12px;\n}\n\n#buddypress .reg_groups_section_title,\n.reg_groups_section_title {\n    margin: 0 0 2px;\n    font-size: 1.2em;\n    font-weight: 600;\n}\n\n.reg_groups_section_description {\n    margin: 0 0 6px;\n    font-size: 0.85em;\n    font-style: italic;\n    color: gray;\n}\n<\/code><\/pre>\n\n<p><strong>Groups section - BP Nouveau template pack:<\/strong><\/p>\n\n<pre><code>#buddypress .layout-wrap #registration-groups-section {\n    float: none;\n    width: 100%;\n    flex: 1 100%;\n}\n<\/code><\/pre>\n\n<!--section=installation-->\n<p>The plugin is packaged so that you can use the built in plugin installer in the WordPress admin section. Just select the\n.zip file and install away! Activate the plugin once it is installed.<\/p>\n\n<p>If you would like to install manually:<\/p>\n\n<ol>\n<li>Extract the .zip file<\/li>\n<li>Upload the extracted directory and all its contents to the '\/wp-content\/plugins\/' directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20show%20private%20groups%3F\"><h3>Does this plugin show Private groups?<\/h3><\/dt>\n<dd><p>Yes! You can toggle private group visibility on and off in the admin section<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20show%20hidden%20groups%3F\"><h3>Does this plugin show Hidden groups?<\/h3><\/dt>\n<dd><p>No. Hidden groups are never displayed on the registration form. If you mark a hidden group as auto-join in the per-group options, new users join it silently at activation \u2014 its name is still never shown on the form.<\/p><\/dd>\n<dt id=\"can%20i%20require%20new%20users%20to%20select%20a%20group%3F\"><h3>Can I require new users to select a group?<\/h3><\/dt>\n<dd><p>Yes. Enable \"Require Group Selection\" on the plugin settings page. Signup then cannot be completed until the\nregistrant selects at least one group offered on the form; an inline error appears next to the group list otherwise.\nHidden and auto-join groups do not count toward the requirement. If no selectable groups exist, the requirement is\nskipped (and a warning is shown on the settings page) so registration is never locked. The requirement is enforced\non the server for both the browser signup form and the BuddyPress REST signup endpoint.<\/p><\/dd>\n<dt id=\"can%20i%20split%20the%20group%20list%20into%20more%20than%20one%20box%2C%20like%20%22interests%22%20and%20%22regions%22%3F\"><h3>Can I split the group list into more than one box, like \"Interests\" and \"Regions\"?<\/h3><\/dt>\n<dd><p>Yes. Use the \"Group Sections\" panel on the plugin settings page to create ordered sections, each with a title, an\noptional description, and the groups you assign to it. While at least one section exists, the registration form\nshows only assigned groups, grouped under their section headings; a group can live in only one section (the first\nsection that lists it wins). Checkboxes allow any number of selections across sections, and radio buttons allow\none selection per section. Selections from every section are combined and joined at activation, and the per-group\nHide, Checked by default, and Auto-join settings still apply.<\/p><\/dd>\n<dt id=\"does%20%22number%20of%20groups%20to%20display%22%20limit%20which%20groups%20can%20be%20joined%3F\"><h3>Does \"Number of Groups to Display\" limit which groups can be joined?<\/h3><\/dt>\n<dd><p>No \u2014 it only trims how many groups the form shows. With the Active, Popular, and Random display orders the visible\nsubset changes between page loads, so the limit is not treated as an eligibility rule when a signup is validated.\nTo make a specific group unselectable at registration, use the per-group Hide option (or leave it out of every\nGroup Section).<\/p><\/dd>\n<dt id=\"what%20if%20the%20plugin%20doesn%27t%20work%3F\"><h3>What if the plugin doesn't work?<\/h3><\/dt>\n<dd><p>Use the WordPress plugin support form (http:\/\/wordpress.org\/support\/plugin\/buddypress-registration-groups-1). I only do this in my spare time, so don't expect a super quick response :)<\/p><\/dd>\n<dt id=\"why%20don%27t%20i%20see%20the%20group%20list%20on%20the%20registration%20page%3F\"><h3>Why don't I see the group list on the registration page?<\/h3><\/dt>\n<dd><p>Make sure BuddyPress is installed and active, the Groups component is enabled (Settings &gt; BuddyPress &gt; Components), and at least one public group exists. The plugin shows an admin notice when BuddyPress is active but the Groups component is disabled.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Security and hardening follow-up to 1.5.1, after a second independent review found signup paths the browser-form hooks did not cover. Every fix was verified on a live WordPress 7.0 + BuddyPress 14.5 install with forged browser and REST submissions.<\/li>\n<li>Security: signups created through the BuddyPress REST API are now held to the same rules as the browser form. \"Require Group Selection\" is enforced on REST signups (the REST endpoint does not run the browser form's validation, so this was previously bypassable), and REST group selections are validated and, in radio mode, capped exactly as on the form.<\/li>\n<li>Fix: with a radio-button display, the \"one choice\" (or one choice per Group Section) rule is now enforced on the server, not just in the browser. A crafted submission can no longer join several groups from a single radio list.<\/li>\n<li>Fix: a private group marked Auto-join with locked display on is no longer named on the registration form while \"Show Private Groups\" is off (it is still joined silently). A group marked both Hide and Auto-join is likewise never named. Both now match the settings help text.<\/li>\n<li>Hardening: submitted group IDs \u2014 from the form, the REST API, and the settings screen alike \u2014 are parsed strictly (plain digit values only); forged payload shapes are dropped instead of being coerced into unrelated group IDs.<\/li>\n<li>Hardening: the \"Display As\", \"Show Private Groups\", \"Require Group Selection\", and \"Auto-Join Display\" settings now store only their documented values, so a forged value cannot make the admin screen and the registration form disagree.<\/li>\n<li>New: a <code>bp_registration_groups_join_failed<\/code> action fires if a group membership cannot be created at activation, so a silent failure can be logged, alerted, or retried.<\/li>\n<li>Expanded the regression suite (four new test files) and upgraded the test stubs to model REST requests, hook priority and accepted-argument counts, and injectable membership-join failures.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Hardening, bug-fix, and accessibility release following a full end-to-end audit of the signup flow on a live WordPress 7.0 + BuddyPress 14.5 install, including adversarial testing with forged form submissions.<\/li>\n<li>Hardening: submitted group IDs are now parsed strictly (plain digit values only); forged payload shapes are dropped instead of being coerced into unrelated group IDs. The coerced IDs always had to pass the full eligibility checks, so this was never a way into a hidden or private group.<\/li>\n<li>Fix: a group marked both Hide and Auto-join is no longer named as a locked \"(automatic)\" entry in the single-list display \u2014 it is joined silently, as the sections display and the settings help text always said.<\/li>\n<li>Fix: the registration form now ignores BuddyPress's group-directory query-string arguments (?num=, ?grpage=, ?s=), which could resize or swap the configured group list.<\/li>\n<li>Fix: with a display limit and a shifting order (Active, Popular, Random), a failed signup no longer loses the registrant's group selection on the re-rendered form \u2014 a still-eligible selection the requery left out is appended, checked.<\/li>\n<li>Accessibility: each group list is now wrapped in an invisible fieldset named by the visible title, section titles and descriptions, and the inline required-selection error, so screen readers announce which question each checkbox or radio group answers. The visual layout is unchanged.<\/li>\n<li>The \"Display As\" setting now stores only its three supported values, and the Title\/Description fallback logic states its intent explicitly (an emptied field restores the advertised default, exactly as before).<\/li>\n<li>Refreshed the translation template (.pot), which had not been regenerated since 1.3.0 and was missing every string added in 1.4.0 and 1.5.0.<\/li>\n<li>Expanded the regression suite (six new test files) covering strict ID parsing, locked auto-join display in the single list, query-string override neutralization, selection preservation under display limits, and the require-selection and sections interactions.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: Group Sections. Organize the registration form into multiple ordered, titled sections (each with an optional description), and curate exactly which groups each section offers. Requested in the wordpress.org support forum.<\/li>\n<li>While at least one section is configured, only assigned groups appear on the form; a group assigned to more than one section is kept in the first section (duplicates never render). No taxonomy plugin is required \u2014 groups are assigned explicitly.<\/li>\n<li>With the radio button display, each section is its own radio group, so registrants can select one group per section; checkboxes allow any number of selections across sections. Selections from every section are sanitized, aggregated once into the signup meta, and joined at activation.<\/li>\n<li>The per-group Hide, Checked by default, and Auto-join settings apply inside sections, and hidden, private (when not shown), or nonexistent groups are never exposed even when assigned to a section.<\/li>\n<li>Existing installations are unaffected until sections are configured: with no sections defined, the single global list renders exactly as before.<\/li>\n<li>Refreshed all screenshots on current WordPress\/BuddyPress and added a seventh showing Group Sections in action; the settings screenshot now includes the Group Sections editor.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: \"Require Group Selection\" setting (off by default). When enabled, signup cannot be completed until the registrant selects at least one group, validated server-side on the BuddyPress signup flow (single site and multisite). Requested in the wordpress.org support forum.<\/li>\n<li>An accessible inline error is shown next to the group list when the requirement is not met, and hidden, private (when not shown), nonexistent, and auto-join group IDs never satisfy it.<\/li>\n<li>The registrant's group selections are now preserved when signup validation fails for any reason (previously the list reset to the admin defaults).<\/li>\n<li>If the requirement is enabled but no selectable groups exist, it is skipped so registration is never blocked, and a warning is shown on the plugin settings page.<\/li>\n<li>Added a regression test suite for the signup validation, signup meta, and group eligibility logic (in the tests directory of the source repository; not shipped in the plugin zip).<\/li>\n<li>Refreshed the admin settings screenshot to include the new setting and added a sixth screenshot showing the inline error in action.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Compatibility release. Tested as working with WordPress 7.0, BuddyPress 14.5, and PHP 8.4, on both single site and multisite.<\/li>\n<li>New: per-group options. Hide individual groups from the registration form, pre-check groups by default, or mark groups as auto-join so every new user becomes a member automatically at activation. Auto-join groups can be left off the form or shown as pre-checked, locked entries labeled \"(automatic)\".<\/li>\n<li>New: plugin icon artwork for the wordpress.org directory (in the .wordpress-org directory of the source repository).<\/li>\n<li>Refreshed all screenshots on current WordPress\/BuddyPress and added a fifth showing the per-group options in action. Screenshots moved to the wordpress.org assets directory and no longer ship inside the plugin zip.<\/li>\n<li>Fixed group joining on single-site (non-multisite) installs. BuddyPress 14 stopped creating the user account at signup time, which caused group selections to be silently lost. Selections are now stored in the signup meta and applied when the account is activated \u2014 the same flow on single site and multisite.<\/li>\n<li>Fixed the group list not appearing when the Extended Profiles component is disabled. The list now also hooks 'bp_before_registration_submit_buttons' as a fallback location.<\/li>\n<li>Fixed the groups section being squeezed into a narrow column with the BP Nouveau template pack.<\/li>\n<li>Security hardening: submitted group selections are now sanitized and validated against the groups the form actually offers, so crafted submissions can no longer auto-join hidden groups (or private groups when \"Show Private Groups\" is off).<\/li>\n<li>Removed the \"Most Forum Topics\" and \"Most Forum Posts\" display orders; BuddyPress removed these years ago and silently sorted by activity instead. Saved settings using them are treated as \"Active\".<\/li>\n<li>Groups are now queried with the modern BuddyPress 'status' argument and without a separate count query.<\/li>\n<li>Fixed an admin settings bug where the \"Display As\" setting always rendered \"Checkboxes Multiselect\" as selected.<\/li>\n<li>Fixed HTML validity and accessibility issues: mismatched heading tags, labels not linked to their inputs, and the \"no groups\" message nested inside the list element.<\/li>\n<li>Escaped all output and sanitized all input per current WordPress plugin guidelines.<\/li>\n<li>The stylesheet now loads only on the registration page and carries a version for cache busting.<\/li>\n<li>Updated plugin headers and readme metadata (Requires PHP, License URI, tags, plain-version stable tag).<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Maintenance update.<\/li>\n<li>Added CSS documentation to the readme.<\/li>\n<li>Removed the minimum BuddyPress version number to address version management in the WordPress plugins repository.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New minor version!<\/li>\n<li>BP Registration Groups has been internationalized and can now be translated into other languages!<\/li>\n<li>Anyone can help translate this plugin by suggesting new translations <a href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/buddypress-registration-groups-1\">here<\/a>.<\/li>\n<li>You can find more information about <a href=\"https:\/\/codex.wordpress.org\/I18n_for_WordPress_Developers\">WordPress internationalization here<\/a>.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Maintenance release. Tested plugin as functional with both WordPress 4.9.2 and BuddyPress 2.9.2. Safe to upgrade.<\/li>\n<li>Removed a deprecated call to screen_icon() in the admin settings<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Maintenance release. Tested plugin as functional with the recent BuddyPress 2.4.3 update. Safe to upgrade.<\/li>\n<li>Updated screenshots.<\/li>\n<li>Updated plugin description text.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added an option to display groups as radio buttons<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Tested plugin as functional with WordPress 4.4 and BuddyPress 2.4.2<\/li>\n<li>Fixed a bug where list bullets would show up in some themes<\/li>\n<li>Added the ability to switch between a list of checkboxes and a list of checkboxes in a scrollable container<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Tested plugin as functional with WordPress 4.2.2 and BuddyPress 2.3.1<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Tested plugin as functional with WordPress 4.1.1 and BuddyPress 2.2.2.1<\/li>\n<li>Addressed an issue with labels appearing below their checkboxes caused by a change to the BuddyPress core CSS<\/li>\n<li>Added reg_groups_group_checkbox and reg_groups_group_label CSS classes to their respective form elements for easier targeting<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Tested plugin as functional with WordPress 3.8 and BuddyPress 1.9<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Prepared echoed and printed text for localization<\/li>\n<li>Added semantic  markup to the checkbox list<\/li>\n<li>Changed the \"bp_has_groups()\" per_page option to use \"groups_get_total_group_count()\" instead of a static number<\/li>\n<li>Added an admin settings page! Woo hoo!<\/li>\n<li>Added the ability to change the section title that is displayed<\/li>\n<li>Added the ability to change the description text that is displayed<\/li>\n<li>Added the ability to display groups sorted by the same options as \"bp_has_groups()\": active, newest, popular, random, alphabetical, most-forum-topics, most-forum-posts<\/li>\n<li>Added the ability to toggle the display of private groups<\/li>\n<li>Added the ability to specify the number of groups to display<\/li>\n<\/ul>\n\n<h4>0.9<\/h4>\n\n<ul>\n<li>Removed all trailing \"?&gt;\" tags from .php files<\/li>\n<li>Beefed up the loader a bit<\/li>\n<li>Enqueued styles correctly<\/li>\n<li>Added responsive styles<\/li>\n<li>Styles are now enqueued at all times as guessing the registration template name is not guaranteed<\/li>\n<li>Replaced deprecated function \"update_usermeta\" with \"update_user_meta\"<\/li>\n<li>Replaced deprecated function \"get_usermeta\" with \"get_user_meta\"<\/li>\n<li>Added a short FAQ<\/li>\n<\/ul>\n\n<h4>0.8<\/h4>\n\n<ul>\n<li>Validated plugin is compatible with BuddyPress 1.5<\/li>\n<li>Modified plugin listing to remove 20 group limit; limit is now 99999<\/li>\n<\/ul>\n\n<h4>0.7<\/h4>\n\n<ul>\n<li>Validated plugin is compatible with WordPress 3.2.1 and BuddyPress 1.2.9<\/li>\n<li>Changed default group listing to only show public groups, hidden and private groups are not shown<\/li>\n<\/ul>\n\n<h4>0.6<\/h4>\n\n<ul>\n<li>Fixed a bug where the timeline would not record group names correctly on join<\/li>\n<li>There is a known issue with user avatars not displaying in the timeline when joining on registration, plugin works fine otherwise<\/li>\n<\/ul>\n\n<h4>0.5<\/h4>\n\n<ul>\n<li>Changed group ordering on the registration page to alphabetical<\/li>\n<\/ul>\n\n<h4>0.4<\/h4>\n\n<ul>\n<li>Replaced static link to plugin .css file with a dynamic one<\/li>\n<li>Addressed minor styling issue<\/li>\n<li>Addressed error that was being thrown if no groups were selected<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>Tested as functional on WordPress 3.0 and BuddyPress 1.2.5.2<\/li>\n<li>Tested as functional in both WP3 single and multisite installations<\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>Updated plugin to work in single and multiuser environments<\/li>\n<li>Tested as functional on WordPress 2.9.2 and BuddyPress 1.2.5.2<\/li>\n<li>Tested as functional on WordPress MU 2.9.2 and BuddyPress 1.2.5.2<\/li>\n<li>Added a readme.txt<\/li>\n<li>Added loader.php to prevent plugin from loading if BuddyPress is not active<\/li>\n<li>Added includes directory<\/li>\n<li>Moved bp-registration-groups.php to includes directory<\/li>\n<li>Added plugin specific CSS file to includes directory<\/li>\n<li>Added code to only load CSS on the registration page<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>First version!<\/li>\n<\/ul>","raw_excerpt":"Allows a new BuddyPress user to select groups to join during the registration process.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/9945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=9945"}],"author":[{"embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hardlyneutral"}],"wp:attachment":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=9945"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=9945"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=9945"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=9945"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=9945"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=9945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}