Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
08/12/2019 08:43:10 PM (7 years ago)
Author:
dcavins
Message:

Update BP_Groups_Group for Invitation API compatibility.

  • Update logic in BP_Groups_Group to avoid direct table lookups and instead use request and invitation functions to fetch and delete invitations.

See #6210.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-groups/classes/class-bp-groups-group.php

    r12426 r12430  
    772772         */
    773773        public static function get_invites( $user_id, $group_id, $sent = null ) {
    774                 global $wpdb;
    775 
    776                 $bp  = buddypress();
    777                 $sql = $wpdb->prepare( "SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d and is_confirmed = 0 AND inviter_id = %d", $group_id, $user_id );
    778 
    779                 // Query for a specific invite sent status.
    780                 if ( ! is_null( $sent ) ) {
    781                         $sql .= $wpdb->prepare( ' AND invite_sent = %d', $sent );
    782                 }
    783 
    784                 return $wpdb->get_col( $sql );
     774                if ( 0 === $sent ) {
     775                        $sent_arg = 'draft';
     776                } else if ( 1 === $sent ) {
     777                        $sent_arg = 'sent';
     778                } else {
     779                        $sent_arg = 'all';
     780                }
     781
     782                return groups_get_invites( array(
     783                        'item_id'     => $group_id,
     784                        'inviter_id'  => $user_id,
     785                        'invite_sent' => $sent_arg,
     786                        'fields'      => 'user_ids',
     787                ) );
    785788        }
    786789
    … …  
    960963         */
    961964        public static function get_membership_requests( $group_id, $limit = null, $page = null ) {
    962                 global $wpdb;
    963 
    964                 if ( !empty( $limit ) && !empty( $page ) ) {
    965                         $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
    966                 }
    967 
    968                 $bp = buddypress();
    969 
    970                 $paged_requests = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0{$pag_sql}", $group_id ) );
    971                 $total_requests = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0", $group_id ) );
    972 
    973                 return array( 'requests' => $paged_requests, 'total' => $total_requests );
     965                $args = array(
     966                        'item_id' => $group_id
     967                );
     968                if ( $limit ) {
     969                        $args['per_page'] = $limit;
     970                }
     971                if ( $page ) {
     972                        $args['page'] = $page;
     973                }
     974
     975                $requests = groups_get_requests( $args );
     976                $total    = count( groups_get_membership_requested_user_ids( $group_id ) );
     977
     978                return array( 'requests' => $requests, 'total' => $total );
    974979        }
    975980
    … …  
    16381643         */
    16391644        public static function delete_all_invites( $group_id ) {
    1640                 global $wpdb;
    1641 
    1642                 $bp = buddypress();
    1643 
    1644                 return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->groups->table_name_members} WHERE group_id = %d AND invite_sent = 1", $group_id ) );
     1645                if ( empty( $group_id ) ) {
     1646                        return false;
     1647                }
     1648
     1649                $invites_class = new BP_Groups_Invitation_Manager();
     1650
     1651                return $invites_class->delete( array(
     1652                        'item_id' => $group_id,
     1653                ) );
    16451654        }
    16461655
Note: See TracChangeset for help on using the changeset viewer.