Changeset 12431 for trunk/src/bp-groups/classes/class-bp-groups-member.php
- Timestamp:
- 08/12/2019 08:43:23 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-groups/classes/class-bp-groups-member.php
r12274 r12431 768 768 769 769 /** 770 * Get a user's outstanding group invitations.770 * Get group objects for groups that a user is currently invited to. 771 771 * 772 772 * @since 1.6.0 … … 785 785 */ 786 786 public static function get_invites( $user_id, $limit = false, $page = false, $exclude = false ) { 787 global $wpdb; 788 789 $pag_sql = ( !empty( $limit ) && !empty( $page ) ) ? $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ) : ''; 790 791 if ( !empty( $exclude ) ) { 792 $exclude = implode( ',', wp_parse_id_list( $exclude ) ); 793 $exclude_sql = " AND g.id NOT IN ({$exclude})"; 794 } else { 795 $exclude_sql = ''; 796 } 797 798 $bp = buddypress(); 799 800 $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND m.is_confirmed = 0 AND m.inviter_id != 0 AND m.invite_sent = 1 AND m.user_id = %d {$exclude_sql} ORDER BY m.date_modified ASC {$pag_sql}", $user_id ) ); 801 802 return array( 'groups' => $paged_groups, 'total' => self::get_invite_count_for_user( $user_id ) ); 787 return groups_get_invites_for_user( $user_id, $limit, $page, $exclude ); 803 788 } 804 789 … … 812 797 */ 813 798 public static function get_invite_count_for_user( $user_id = 0 ) { 814 global $wpdb; 815 816 $bp = buddypress(); 817 818 $count = wp_cache_get( $user_id, 'bp_group_invite_count' ); 819 820 if ( false === $count ) { 821 $count = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND m.is_confirmed = 0 AND m.inviter_id != 0 AND m.invite_sent = 1 AND m.user_id = %d", $user_id ) ); 822 wp_cache_set( $user_id, $count, 'bp_group_invite_count' ); 823 } 824 825 return $count; 799 return groups_get_invite_count_for_user( $user_id ); 826 800 } 827 801 … … 863 837 switch ( $r['type'] ) { 864 838 case 'pending_request' : 865 $sql['where'] = $wpdb->prepare( "user_id = %d AND is_confirmed = 0 AND inviter_id = 0", $user_id ); 839 return groups_get_requests( array( 840 'user_id' => $user_id, 841 'page' => $r['page'], 842 'per_page' => $r['per_page'], 843 ) ); 866 844 break; 867 845 868 846 case 'pending_received_invitation' : 869 $sql['where'] = $wpdb->prepare( "user_id = %d AND is_confirmed = 0 AND inviter_id != 0", $user_id ); 847 return groups_get_invites( array( 848 'user_id' => $user_id, 849 'page' => $r['page'], 850 'per_page' => $r['per_page'], 851 ) ); 870 852 break; 871 853 872 854 case 'pending_sent_invitation' : 873 $sql['where'] = $wpdb->prepare( "inviter_id = %d AND is_confirmed = 0", $user_id ); 855 return groups_get_invites( array( 856 'inviter_id' => $user_id, 857 'page' => $r['page'], 858 'per_page' => $r['per_page'], 859 ) ); 874 860 break; 875 861 … … 913 899 */ 914 900 public static function check_has_invite( $user_id, $group_id, $type = 'sent' ) { 915 global $wpdb; 916 917 if ( empty( $user_id ) ) 918 return false; 919 920 $bp = buddypress(); 921 $sql = "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND inviter_id != 0"; 922 923 if ( 'sent' == $type ) 924 $sql .= " AND invite_sent = 1"; 925 926 $query = $wpdb->get_var( $wpdb->prepare( $sql, $user_id, $group_id ) ); 927 928 return is_numeric( $query ) ? (int) $query : $query; 901 return groups_is_user_invited( $user_id, $group_id, $type ); 929 902 } 930 903 … … 936 909 * @global WPDB $wpdb 937 910 * 938 * @param int $user_id ID of the user. 939 * @param int $group_id ID of the group. 911 * @param int $user_id ID of the user. 912 * @param int $group_id ID of the group. 913 * @param int $inviter_id ID of the inviter. Specify if you want to delete 914 * a specific invite. Leave false if you want to 915 * delete all invites to this group. 940 916 * @return int Number of records deleted. 941 917 */ 942 public static function delete_invite( $user_id, $group_id ) { 943 global $wpdb; 944 945 if ( empty( $user_id ) ) { 946 return false; 947 } 948 918 public static function delete_invite( $user_id, $group_id, $inviter_id = false ) { 949 919 /** 950 920 * Fires before a group invitation is deleted. 951 921 * 952 922 * @since 2.6.0 923 * @since 5.0.0 Added $inviter_id 953 924 * 954 925 * @param int $user_id ID of the user. 955 926 * @param int $group_id ID of the group. 927 * @param int $inviter_id ID of the inviter. 956 928 */ 957 do_action( 'bp_groups_member_before_delete_invite', $user_id, $group_id ); 958 959 $table_name = buddypress()->groups->table_name_members; 960 961 $sql = "DELETE FROM {$table_name} 962 WHERE user_id = %d 963 AND group_id = %d 964 AND is_confirmed = 0 965 AND inviter_id != 0"; 966 967 $prepared = $wpdb->prepare( $sql, $user_id, $group_id ); 968 969 return $wpdb->query( $prepared ); 929 do_action( 'bp_groups_member_before_delete_invite', $user_id, $group_id, $inviter_id ); 930 931 return groups_delete_invite( $user_id, $group_id, $inviter_id ); 970 932 } 971 933 … … 980 942 */ 981 943 public static function delete_request( $user_id, $group_id ) { 982 global $wpdb; 983 984 if ( empty( $user_id ) ) 985 return false; 986 987 $bp = buddypress(); 988 989 return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND inviter_id = 0 AND invite_sent = 0", $user_id, $group_id ) ); 944 return groups_delete_membership_request( false, $user_id, $group_id ); 990 945 } 991 946 … … 1105 1060 */ 1106 1061 public static function check_for_membership_request( $user_id, $group_id ) { 1107 global $wpdb; 1108 1109 if ( empty( $user_id ) ) 1110 return false; 1111 1112 $bp = buddypress(); 1113 1114 return $wpdb->query( $wpdb->prepare( "SELECT id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND is_banned = 0 AND inviter_id = 0", $user_id, $group_id ) ); 1062 return groups_is_user_pending( $user_id, $group_id ); 1115 1063 } 1116 1064 … … 1293 1241 */ 1294 1242 public static function get_all_membership_request_user_ids( $group_id ) { 1295 global $wpdb; 1296 1297 $bp = buddypress(); 1298 1299 return array_map( 'intval', $wpdb->get_col( $wpdb->prepare( "SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0", $group_id ) ) ); 1243 return groups_get_membership_requested_user_ids( $group_id ); 1300 1244 } 1301 1245
Note: See TracChangeset
for help on using the changeset viewer.