[Resolved] How to delete specific members from a large group?
-
In a large Buddypress group, if I want to delete a member, it’s very tedious to have to scroll through page after page of members in the Group Admin/Members or the WordPress Groups backend.
Isn’t there a way to search then edit the group membership of individual members?Thanks
-
There may be an easier way via the back-end (I haven’t checked) but via code you could do this in functions.php:
function palmdoc_remove_group_user() { $group_id = 6 // Change this value $user_id = 320 // Change this value groups_leave_group( $group_id, $user_id ); } add_action( 'init', 'palmdoc_remove_group_user' );
The next time you visit your website in a browser, the user will be removed from the group.
Whilst you’re not using it just comment out the
add_action()
part. For example:// add_action( 'init', 'palmdoc_remove_group_user' );
hi @palmdoc,
as expected by @henrywright, there is an easier solution from backend. I quickly tested it and it seems to work.
The snippet will add a bulk option to members list (in admin), which let you remove users from groups. Like on front-end, the admin user list is searchable by user.
Add this to bp-custom.php
// remove users from groups add_action('load-users.php',function() { if(isset($_GET['action']) && isset($_GET['bp_gid']) && isset($_GET['users'])) { $group_id = $_GET['bp_gid']; $users = $_GET['users']; foreach ($users as $user_id) { groups_leave_group( $group_id, $user_id ); } } //Add some Javascript to handle the form submission add_action('admin_footer',function(){ ?> <script> jQuery("select[name='action']").append(jQuery('<option value="groupleave">Remove from BP Group</option>')); jQuery("#doaction").click(function(e){ if(jQuery("select[name='action'] :selected").val()=="groupleave") { e.preventDefault(); gid=prompt("Please enter a BuddyPres Group ID",""); jQuery(".wrap form").append('<input type="hidden" name="bp_gid" value="'+gid+'" />').submit(); } }); </script> <?php }); });
Hi. Thanks for this.
Sorry but a noob question: where is the bp-custom.php file? I can’t seem to locate it/plugins/bp-custom.php
If you don’t already have one, you should create one yourself.
Codex is your friend:
Thanks!
Done that but I can’t seem to find the new functions
Is it supposed to be in
mysite/groups/groupname/admin/manage-members/
?This page is on front-end: mysite/groups/groupname/admin/manage-members/
The snippet is playing on the user list in admin. The access to delete a group user is in the bulk action selector, at the top left of that list.
Hmm somehow I don’t see the selector. I have placed bp-custom.php in the root of the plugins folder
and this is the code
<?php // hacks and mods will go here // remove users from groups add_action('load-users.php',function() { if(isset($_GET['action']) && isset($_GET['bp_gid']) && isset($_GET['users'])) { $group_id = $_GET['bp_gid']; $users = $_GET['users']; foreach ($users as $user_id) { groups_leave_group( $group_id, $user_id ); } } //Add some Javascript to handle the form submission add_action('admin_footer',function(){ ?> <script> jQuery("select[name='action']").append(jQuery('<option value="groupleave">Remove from BP Group</option>')); jQuery("#doaction").click(function(e){ if(jQuery("select[name='action'] :selected").val()=="groupleave") { e.preventDefault(); gid=prompt("Please enter a BuddyPres Group ID",""); jQuery(".wrap form").append('<input type="hidden" name="bp_gid" value="'+gid+'" />').submit(); } }); </script> <?php }); }); ?>
you’re on front-end, I’m talking about backend
your-site/wp-admin/users.phpSorry but I don’t see any Group management options in the back end either. Can you please show a screenshot of what I’m supposed to see?
Would you please read twice and triple check the answers you receive ? I added a screnshot and a link example you have to follow.
Remeber that you asked for if I want to delete a member
I suppose that you know how to manage users in admin ? Go there…
I have read and checked more than three times. My original question is I want to delete a member from a group – i.e. remove them from a group not from the site.
I really hope there is better group member management for Buddypress as it is a nightmare when there are thousands of members.Please, try the solution before telling insanity.
Members bulk management is done in admin.
To remove a group member, you have the opportunity to do it from frontend0. One by one, as mod or group admin. Why not bulk action on front ? Because it is not the place for achieve massive user administration.Back to backoffice where are
A members list (with members)
A group list (with group entities)Both allowg bulk actions (add/delete)
If you check attentively, there is no relation between both list. No groups are mentionned on members list, and no members are mentionned on group list, except a member count.Now you’re coming in and ask how to bulk delete group members.
Fortunately, you got a solution. No the best, not the only one, but at least, one.Alas, you didn’t really understand what to do with and where to use it. 3 topics and 2 screenshots later, explaining the difference between back and frontend, the only thing you find to say is I want to delete a member from a group not from the site.
Do you really think that that code removes a site member ? Did you ever read the code ? Perhaps you don’t understand what
groups_leave_group
does ?
This instruction removes only a member from one or more groups. Exactly that what you asked for. And it’s done from the only place where a members list is on hand: in admin.I close this topic, before getting totally out of scope and becaming to trollish.
- The topic ‘[Resolved] How to delete specific members from a large group?’ is closed to new replies.