bp_groups_admin_process_group_type_bulk_changes( string $doaction )
Process input from the Group Type bulk change select.
Description
Parameters
- $doaction
-
(Required) Current $_GET action being performed in admin screen.
Source
File: bp-groups/bp-groups-admin.php
function bp_groups_admin_process_group_type_bulk_changes( $doaction ) {
// Bail if no groups are specified or if this isn't a relevant action.
if ( empty( $_REQUEST['gid'] )
|| ( empty( $_REQUEST['bp_change_type'] ) && empty( $_REQUEST['bp_change_type2'] ) )
|| empty( $_REQUEST['bp_change_group_type'] )
) {
return;
}
// Bail if nonce check fails.
check_admin_referer( 'bp-bulk-groups-change-type-' . bp_loggedin_user_id(), 'bp-bulk-groups-change-type-nonce' );
if ( ! bp_current_user_can( 'bp_moderate' ) ) {
return;
}
$new_type = '';
if ( ! empty( $_REQUEST['bp_change_type2'] ) ) {
$new_type = sanitize_text_field( $_REQUEST['bp_change_type2'] );
} elseif ( ! empty( $_REQUEST['bp_change_type'] ) ) {
$new_type = sanitize_text_field( $_REQUEST['bp_change_type'] );
}
// Check that the selected type actually exists.
if ( 'remove_group_type' !== $new_type && null === bp_groups_get_group_type_object( $new_type ) ) {
$error = true;
} else {
// Run through group ids.
$error = false;
foreach ( (array) $_REQUEST['gid'] as $group_id ) {
$group_id = (int) $group_id;
// Get the old group type to check against.
$group_type = bp_groups_get_group_type( $group_id );
if ( 'remove_group_type' === $new_type ) {
// Remove the current group type, if there's one to remove.
if ( $group_type ) {
$removed = bp_groups_remove_group_type( $group_id, $group_type );
if ( false === $removed || is_wp_error( $removed ) ) {
$error = true;
}
}
} else {
// Set the new group type.
if ( $new_type !== $group_type ) {
$set = bp_groups_set_group_type( $group_id, $new_type );
if ( false === $set || is_wp_error( $set ) ) {
$error = true;
}
}
}
}
}
// If there were any errors, show the error message.
if ( $error ) {
$redirect = add_query_arg( array( 'updated' => 'group-type-change-error' ), wp_get_referer() );
} else {
$redirect = add_query_arg( array( 'updated' => 'group-type-change-success' ), wp_get_referer() );
}
wp_redirect( $redirect );
exit();
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.7.0 | 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.