Skip to:
Content

BuddyPress.org

Ticket #7936: 7936.diff

File 7936.diff, 5.5 KB (added by boonebgorges, 3 years ago)
  • src/bp-templates/bp-legacy/buddypress-functions.php

    diff --git src/bp-templates/bp-legacy/buddypress-functions.php src/bp-templates/bp-legacy/buddypress-functions.php
    index 0743b60b4..68bf9c27a 100644
    function bp_legacy_theme_ajax_joinleave_group() { 
    15111511        if ( ! $group = groups_get_group( $group_id ) )
    15121512                return;
    15131513
    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
    15161530                        check_ajax_referer( 'groups_join_group' );
    15171531
    15181532                        if ( ! groups_join_group( $group->id ) ) {
    function bp_legacy_theme_ajax_joinleave_group() { 
    15201534                        } else {
    15211535                                echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    15221536                        }
     1537                break;
    15231538
    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                        }
    15301543
    1531                                 if ( ! groups_accept_invite( bp_loggedin_user_id(), $group->id ) ) {
    1532                                         _e( 'Error requesting membership', 'buddypress' );
    1533                                 } else {
    1534                                         echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1535                                 }
     1544                        check_ajax_referer( 'groups_accept_invite' );
    15361545
    1537                         // Otherwise, it's a Request Membership button.
     1546                        if ( ! groups_accept_invite( bp_loggedin_user_id(), $group->id ) ) {
     1547                                _e( 'Error requesting membership', 'buddypress' );
    15381548                        } else {
    1539                                 check_ajax_referer( 'groups_request_membership' );
     1549                                echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
     1550                        }
     1551                break;
    15401552
    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>';
    15461560                        }
    1547                 }
     1561                break;
    15481562
    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;
    15591574        }
    15601575
    15611576        exit;