Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
10/17/2013 07:00:46 PM (12 years ago)
Author:
boonebgorges
Message:

Improve UX flow around overlapping group invites and requests

This changeset introduces a number of improvements to the flow surrounding
invitations and membership requests to private groups:

  • When a user has previously requested membership in a group, add a note to that effect when the user is being invited to the group via the Send Invites interface.
  • When a user has previously requested membership in a group, automatically accept that invitation and add the user to the group when an invitation is sent by an existing group member.
  • When a user has previously been invited to a group, buttons in the group directory and in the group header should read Accept Invitation instead of Request Membership

The end result is a more logical user experience with regard to joining private
groups.

Fixes #5032

Props Mike_Cowobo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-groups/bp-groups-functions.php

    r7338 r7442  
    655655        return false;
    656656
    657     if ( !groups_is_user_member( $user_id, $group_id ) && !groups_check_user_has_invite( $user_id, $group_id, 'all' ) ) {
     657    // if the user has already requested membership, accept the request
     658    if ( $membership_id = groups_check_for_membership_request( $user_id, $group_id ) ) {
     659        groups_accept_membership_request( $membership_id, $user_id, $group_id );
     660
     661    // Otherwise, create a new invitation
     662    } else if ( ! groups_is_user_member( $user_id, $group_id ) && ! groups_check_user_has_invite( $user_id, $group_id, 'all' ) ) {
    658663        $invite                = new BP_Groups_Member;
    659664        $invite->group_id      = $group_id;
     
    872877    if ( groups_is_user_member( $requesting_user_id, $group_id ) || groups_is_user_banned( $requesting_user_id, $group_id ) )
    873878        return false;
     879
     880    // Check if the user is already invited - if so, simply accept invite
     881    if ( groups_check_user_has_invite( $requesting_user_id, $group_id ) ) {
     882        groups_accept_invite( $requesting_user_id, $group_id );
     883        return true;
     884    }
    874885
    875886    $requesting_user                = new BP_Groups_Member;
Note: See TracChangeset for help on using the changeset viewer.