1514 | | if ( ! groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) { |
1515 | | if ( bp_current_user_can( 'groups_join_group', array( 'group_id' => $group->id ) ) ) { |
| 1514 | if ( groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) { |
| 1515 | $request_type = 'leave_group'; |
| 1516 | } elseif ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) ) { |
| 1517 | $request_type = 'accept_invite'; |
| 1518 | } elseif ( 'private' === $group->status ) { |
| 1519 | $request_type = 'request_membership'; |
| 1520 | } else { |
| 1521 | $request_type = 'join_group'; |
| 1522 | } |
| 1523 | |
| 1524 | switch ( $request_type ) { |
| 1525 | case 'join_group' : |
| 1526 | if ( ! bp_current_user_can( 'groups_join_group', array( 'group_id' => $group->id ) ) ) { |
| 1527 | wp_die( __( 'Error joining group', 'buddypress' ) ); |
| 1528 | } |
| 1529 | |
1524 | | } elseif ( bp_current_user_can( 'groups_request_membership', array( 'group_id' => $group->id ) ) ) { |
1525 | | |
1526 | | // If the user has already been invited, then this is |
1527 | | // an Accept Invitation button. |
1528 | | if ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) ) { |
1529 | | check_ajax_referer( 'groups_accept_invite' ); |
| 1539 | case 'accept_invite' : |
| 1540 | if ( ! bp_current_user_can( 'groups_request_membership', array( 'group_id' => $group->id ) ) ) { |
| 1541 | wp_die( __( 'Error accepting invitation', 'buddypress' ) ); |
| 1542 | } |
1541 | | if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { |
1542 | | _e( 'Error requesting membership', 'buddypress' ); |
1543 | | } else { |
1544 | | echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button disabled pending membership-requested" rel="membership-requested" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Request Sent', 'buddypress' ) . '</a>'; |
1545 | | } |
| 1553 | case 'request_membership' : |
| 1554 | check_ajax_referer( 'groups_request_membership' ); |
| 1555 | |
| 1556 | if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { |
| 1557 | _e( 'Error requesting membership', 'buddypress' ); |
| 1558 | } else { |
| 1559 | echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button disabled pending membership-requested" rel="membership-requested" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Request Sent', 'buddypress' ) . '</a>'; |
1549 | | } else { |
1550 | | check_ajax_referer( 'groups_leave_group' ); |
1551 | | |
1552 | | if ( ! groups_leave_group( $group->id ) ) { |
1553 | | _e( 'Error leaving group', 'buddypress' ); |
1554 | | } elseif ( bp_current_user_can( 'groups_join_group', array( 'group_id' => $group->id ) ) ) { |
1555 | | echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button join-group" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; |
1556 | | } elseif ( bp_current_user_can( 'groups_request_membership', array( 'group_id' => $group->id ) ) ) { |
1557 | | echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button request-membership" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; |
1558 | | } |
| 1563 | case 'leave_group' : |
| 1564 | check_ajax_referer( 'groups_leave_group' ); |
| 1565 | |
| 1566 | if ( ! groups_leave_group( $group->id ) ) { |
| 1567 | _e( 'Error leaving group', 'buddypress' ); |
| 1568 | } elseif ( 'public' === $group->status ) { |
| 1569 | echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button join-group" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; |
| 1570 | } else { |
| 1571 | echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button request-membership" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; |
| 1572 | } |
| 1573 | break; |