%s group has been created.', 'groups' ), $group->name ? stripslashes( wp_filter_nohtml_kses( $group->name ) ) : '' ) ); } break; case 'edit' : if ( !( $group_id = groups_admin_groups_edit_submit() ) ) { return groups_admin_groups_edit( groups_sanitize_post( 'group-id-field' ) ); } else { $group = Groups_Group::read( $group_id ); Groups_Admin::add_message( sprintf( /* translators: group name */ __( 'The %s group has been updated.', 'groups' ), $group->name ? stripslashes( wp_filter_nohtml_kses( $group->name ) ) : '' ) ); } break; case 'remove' : if ( $group_id = groups_admin_groups_remove_submit() ) { Groups_Admin::add_message( __( 'The group has been deleted.', 'groups' ) ); } break; // bulk actions on groups: add capabilities, remove capabilities, remove groups case 'groups-action' : if ( groups_verify_post_nonce( GROUPS_ADMIN_GROUPS_ACTION_NONCE, 'admin' ) ) { $group_ids = groups_sanitize_post( 'group_ids' ); $bulk_action = groups_sanitize_post( 'bulk-action' ); if ( is_array( $group_ids ) && ( $bulk_action !== null ) ) { foreach ( $group_ids as $group_id ) { switch ( $bulk_action ) { case 'add-capability' : $capabilities_id = groups_sanitize_post( 'capability_id' ); if ( is_array( $capabilities_id ) ) { foreach ( $capabilities_id as $capability_id ) { Groups_Group_Capability::create( array( 'group_id' => $group_id, 'capability_id' => $capability_id ) ); } } break; case 'remove-capability' : $capabilities_id = groups_sanitize_post( 'capability_id' ); if ( is_array( $capabilities_id ) ) { foreach ( $capabilities_id as $capability_id ) { Groups_Group_Capability::delete( $group_id, $capability_id ); } } break; case 'remove-group' : $bulk_confirm = isset( $_POST['confirm'] ) ? true : false; // phpcs:ignore WordPress.Security.NonceVerification.Missing if ( $bulk_confirm ) { groups_admin_groups_bulk_remove_submit(); } else { return groups_admin_groups_bulk_remove(); } break; default: if ( has_action( 'groups_admin_groups_handle_bulk_action' ) ) { /** * Handle the requested bulk action. * * @param string $bulk_action the requested bulk action * @param string|int $group_id the requested group ID */ do_action( 'groups_admin_groups_handle_bulk_action', $bulk_action, $group_id ); } } } } } break; default: if ( has_filter( 'groups_admin_groups_handle_action_submit' ) ) { /** * Handle a requested action after $_POST. * * @since 3.7.0 * * @param boolean $handle whether to handle the posted action * @param string $action the requested action * * @return boolean whether the posted data was accepted and action was taken */ if ( apply_filters( 'groups_admin_groups_handle_action_submit', false, groups_sanitize_post( 'action' ) ) ) { /** * Fires after the posted data for an action was accepted. * * Should produce output to provide feedback to the user. * * @since 3.7.0 * * @param string $action the requested action */ do_action( 'groups_admin_groups_handle_action_confirm', groups_sanitize_post( 'action' ) ); } else { /** * Fires after the posted data for an action was rejected. * * Should produce output to provide feedback to the user. * * @since 3.7.0 * * @param string $action the requested action */ do_action( 'groups_admin_groups_handle_action_reject', groups_sanitize_post( 'action' ) ); return; } } } } else if ( isset( $_GET['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended // handle action request - show form switch ( groups_sanitize_get( 'action' ) ) { case 'add' : return groups_admin_groups_add(); break; case 'edit' : if ( isset( $_GET['group_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended return groups_admin_groups_edit( groups_sanitize_get( 'group_id' ) ); } break; case 'remove' : if ( isset( $_GET['group_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended return groups_admin_groups_remove( groups_sanitize_get( 'group_id' ) ); } break; default: if ( isset( $_GET['group_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended if ( has_action( 'groups_admin_groups_handle_action' ) ) { /** * Handle the requested action and produce the corresponding output. * * @param string $action the requested action * @param string|int $group_id the requested group ID */ do_action( 'groups_admin_groups_handle_action', groups_sanitize_get( 'action' ), groups_sanitize_get( 'group_id' ) ); return; } } } } // // group table // if ( isset( $_POST['clear_filters'] ) || // phpcs:ignore WordPress.Security.NonceVerification.Missing isset( $_POST['group_id'] ) || // phpcs:ignore WordPress.Security.NonceVerification.Missing isset( $_POST['group_name'] ) // phpcs:ignore WordPress.Security.NonceVerification.Missing ) { if ( !groups_verify_post_nonce( GROUPS_ADMIN_GROUPS_FILTER_NONCE, 'admin' ) ) { wp_die( esc_html__( 'Access denied.', 'groups' ) ); } } // filters $group_id = Groups_Options::get_user_option( 'groups_group_id', null ); $group_name = Groups_Options::get_user_option( 'groups_group_name', null ); if ( isset( $_POST['clear_filters'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing Groups_Options::delete_user_option( 'groups_group_id' ); Groups_Options::delete_user_option( 'groups_group_name' ); $group_id = null; $group_name = null; } else if ( isset( $_POST['submitted'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing // filter by name if ( !empty( $_POST['group_name'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing $group_name = groups_sanitize_post( 'group_name' ); Groups_Options::update_user_option( 'groups_group_name', $group_name ); } // filter by group id if ( !empty( $_POST['group_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing $group_id = intval( groups_sanitize_post( 'group_id' ) ); Groups_Options::update_user_option( 'groups_group_id', $group_id ); } else if ( isset( $_POST['group_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing // empty && isset => '' => all $group_id = null; Groups_Options::delete_user_option( 'groups_group_id' ); } } if ( isset( $_POST['row_count'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing if ( !groups_verify_post_nonce( GROUPS_ADMIN_GROUPS_NONCE, 'admin' ) ) { wp_die( esc_html__( 'Access denied.', 'groups' ) ); } } if ( isset( $_POST['paged'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing if ( !groups_verify_post_nonce( GROUPS_ADMIN_GROUPS_NONCE, 'admin' ) ) { wp_die( esc_html__( 'Access denied.', 'groups' ) ); } } $current_url = groups_get_current_url(); $current_url = remove_query_arg( 'paged', $current_url ); $current_url = remove_query_arg( 'action', $current_url ); $current_url = remove_query_arg( 'group_id', $current_url ); $group_table = _groups_get_tablename( 'group' ); $user_group_table = _groups_get_tablename( 'user_group' ); $output .= '