' . '

' . __( 'Remove a capability', 'groups' ) . '

' . '
' . '
' . '' . ' ' . wp_nonce_field( 'capabilities-remove', GROUPS_ADMIN_GROUPS_NONCE, true, false ) . '' . '' . '' . __( 'Cancel', 'groups' ) . '' . '
' . '' . // .capability.remove '
' . ''; // .manage-capabilities echo $output; } // function groups_admin_capabilities_remove /** * Handle remove form submission. */ function groups_admin_capabilities_remove_submit() { global $wpdb; $result = false; if ( !current_user_can( GROUPS_ADMINISTER_GROUPS ) ) { wp_die( __( 'Access denied.', 'groups' ) ); } if ( !wp_verify_nonce( $_POST[GROUPS_ADMIN_GROUPS_NONCE], 'capabilities-remove' ) ) { wp_die( __( 'Access denied.', 'groups' ) ); } $capability_id = isset( $_POST['capability-id-field'] ) ? $_POST['capability-id-field'] : null; $capability = Groups_Capability::read( $capability_id ); if ( $capability ) { if ( $capability->capability !== Groups_Post_Access::READ_POST_CAPABILITY ) { $result = Groups_Capability::delete( $capability_id ); } } return $result; } // function groups_admin_capabilities_remove_submit /** * Shows form to confirm removal bulk capabilities */ function groups_admin_capabilities_bulk_remove() { global $wpdb; $output = ''; if ( !current_user_can( GROUPS_ADMINISTER_GROUPS ) ) { wp_die( __( 'Access denied.', 'groups' ) ); } $capability_ids = isset( $_POST['capability_ids'] ) ? $_POST['capability_ids'] : null; if ( ! $capability_ids ) { wp_die( __( 'No such capabilities.', 'groups' ) ); } $capabilities = array(); foreach ( $capability_ids as $capability_id ) { $capability = Groups_Capability::read( intval( $capability_id ) ); if ( $capability ) { $capabilities[] = $capability; } } $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $current_url = remove_query_arg( 'action', $current_url ); $current_url = remove_query_arg( 'capability_id', $current_url ); $output .= '
'; $output .= '

'; $output .= __( 'Remove capabilities', 'groups' ); $output .= '

'; $output .= '
'; $output .= '
'; $output .= '

'; $output .= __( 'Please confirm to remove the following capabilities. This action cannot be undone.', 'groups' ); $output .= '

'; foreach ( $capabilities as $capability ) { $output .= ''; $output .= '
    '; $output .= '
  • '; $output .= sprintf( __( '%s', 'groups' ), wp_filter_nohtml_kses( $capability->capability ) ); $output .= '
  • '; $output .= '
'; } $output .= ''; $output .= '' . __( 'Cancel', 'groups' ) . ''; $output .= ''; $output .= ''; $output .= ''; $output .= wp_nonce_field( 'admin', GROUPS_ADMIN_GROUPS_ACTION_NONCE, true, false ); $output .= '
'; $output .= '
'; $output .= '
'; echo $output; } // function groups_admin_capabilities_bulk_remove /** * Handle remove form submission. * @return array of deleted capabilities' ids */ function groups_admin_capabilities_bulk_remove_submit() { global $wpdb; $result = array(); if ( !current_user_can( GROUPS_ADMINISTER_GROUPS ) ) { wp_die( __( 'Access denied.', 'groups' ) ); } if ( !wp_verify_nonce( $_POST[GROUPS_ADMIN_GROUPS_ACTION_NONCE], 'admin' ) ) { wp_die( __( 'Access denied.', 'groups' ) ); } $capability_ids = isset( $_POST['capability_ids'] ) ? $_POST['capability_ids'] : null; if ( $capability_ids ) { foreach ( $capability_ids as $capability_id ) { $capability = Groups_Capability::read( $capability_id ); if ( $capability ) { if ( $capability->capability !== Groups_Post_Access::READ_POST_CAPABILITY ) { if ( Groups_Capability::delete( $capability_id ) ) { $result[] = $capability->capability_id; } } } } } return $result; } // function groups_admin_capabilities_bulk_remove_submit