Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
08/12/2019 08:43:10 PM (6 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.