Changeset 13994 for trunk/src/bp-members/bp-members-filters.php
- Timestamp:
- 08/07/2024 01:46:38 AM (22 months ago)
- File:
-
- 1 edited
-
trunk/src/bp-members/bp-members-filters.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-members/bp-members-filters.php
r13878 r13994 35 35 36 36 // Filters on sign-up fields. 37 $fields = array (37 $fields = array( 38 38 'bp_get_signup_username_value', 39 39 'bp_get_signup_email_value', … … 47 47 // Add the filters to each field. 48 48 foreach ( $fields as $filter ) { 49 add_filter( $filter, 'esc_html', 1 );49 add_filter( $filter, 'esc_html', 1 ); 50 50 add_filter( $filter, 'wp_filter_kses', 2 ); 51 add_filter( $filter, 'stripslashes', 3 );51 add_filter( $filter, 'stripslashes', 3 ); 52 52 } 53 53 … … 76 76 77 77 if ( is_network_admin() && isset( $_POST['blog'] ) ) { 78 $blog = $_POST['blog'];78 $blog = $_POST['blog']; 79 79 $domain = ''; 80 80 … … 86 86 $illegal_names[] = $domain; 87 87 } 88 89 88 } else { 90 89 $illegal_names[] = buddypress()->signup->username; … … 131 130 } 132 131 add_filter( 'edit_profile_url', 'bp_members_edit_profile_url', 10, 3 ); 132 133 /** 134 * Filter BP_User_Query::populate_extras to add last activity. 135 * 136 * @since 15.0.0 137 * 138 * @param BP_User_Query $user_query The BP_User_Query object. 139 */ 140 function bp_members_filter_user_query_populate_extras_last_activity( $user_query ) { 141 $last_activities = BP_Core_User::get_last_activity( $user_query->user_ids ); 142 143 // Set a last_activity value for each user, even if it's empty. 144 foreach ( $user_query->results as $user_id => $user ) { 145 $user_last_activity = isset( $last_activities[ $user_id ]['date_recorded'] ) 146 ? $last_activities[ $user_id ]['date_recorded'] 147 : ''; 148 149 $user_query->results[ $user_id ]->last_activity = $user_last_activity; 150 } 151 } 152 add_action( 'bp_user_query_populate_extras', 'bp_members_filter_user_query_populate_extras_last_activity' ); 153 154 /** 155 * Filter BP_User_Query::populate_extras to add friend count & latest update. 156 * 157 * @since 15.0.0 158 * 159 * @global wpdb $wpdb WordPress database object. 160 * 161 * @param BP_User_Query $user_query The BP_User_Query object. 162 * @param string $user_ids_sql Comma-separated list of user IDs to fetch extra 163 * data for, as determined by BP_User_Query. 164 */ 165 function bp_members_filter_user_query_populate_extras_friend_count_latest_update( $user_query, $user_ids_sql ) { 166 global $wpdb; 167 168 $total_friend_count_key = bp_get_user_meta_key( 'total_friend_count' ); 169 $bp_latest_update_key = bp_get_user_meta_key( 'bp_latest_update' ); 170 171 // Total_friend_count must be set for each user, even if its 172 // value is 0. 173 foreach ( $user_query->results as $uindex => $user ) { 174 $user_query->results[ $uindex ]->total_friend_count = 0; 175 } 176 177 // Create, prepare, and run the separate usermeta query. 178 $user_metas = $wpdb->get_results( 179 $wpdb->prepare( 180 "SELECT user_id, meta_key, meta_value FROM {$wpdb->usermeta} WHERE meta_key IN (%s,%s) AND user_id IN ({$user_ids_sql})", 181 $total_friend_count_key, 182 $bp_latest_update_key 183 ) 184 ); 185 186 // The $members_template global expects the index key to be different 187 // from the meta_key in some cases, so we rejig things here. 188 foreach ( $user_metas as $user_meta ) { 189 switch ( $user_meta->meta_key ) { 190 case $total_friend_count_key: 191 $key = 'total_friend_count'; 192 break; 193 194 case $bp_latest_update_key: 195 $key = 'latest_update'; 196 break; 197 } 198 199 if ( isset( $user_query->results[ $user_meta->user_id ] ) ) { 200 $user_query->results[ $user_meta->user_id ]->{$key} = $user_meta->meta_value; 201 } 202 } 203 } 204 add_action( 'bp_user_query_populate_extras', 'bp_members_filter_user_query_populate_extras_friend_count_latest_update', 10, 2 ); 205 206 /** 207 * Filter BP_User_Query::populate_extras to add meta key / value. 208 * 209 * Only added if 'meta_key' or 'meta_value' is passed to the user query. 210 * 211 * @since 15.0.0 212 * 213 * @global wpdb $wpdb WordPress database object. 214 * 215 * @param BP_User_Query $user_query The BP_User_Query object. 216 */ 217 function bp_members_filter_user_query_populate_extras_meta( $user_query ) { 218 global $wpdb; 219 220 if ( empty( $user_query->query_vars['meta_key'] ) ) { 221 return; 222 } 223 224 $meta_sql = array( 225 'select' => 'SELECT user_id, meta_key, meta_value', 226 'from' => "FROM $wpdb->usermeta", 227 'where' => $wpdb->prepare( 'WHERE meta_key = %s', $user_query->query_vars['meta_key'] ), 228 ); 229 230 if ( false !== $user_query->query_vars['meta_value'] ) { 231 $meta_sql['where'] .= $wpdb->prepare( ' AND meta_value = %s', $user_query->query_vars['meta_value'] ); 232 } 233 234 $metas = $wpdb->get_results( "{$meta_sql['select']} {$meta_sql['from']} {$meta_sql['where']}" ); 235 236 if ( empty( $metas ) || ! is_array( $metas ) ) { 237 return; 238 } 239 240 foreach ( $metas as $meta ) { 241 if ( isset( $user_query->results[ $meta->user_id ] ) ) { 242 $user_query->results[ $meta->user_id ]->meta_key = $meta->meta_key; 243 244 if ( ! empty( $meta->meta_value ) ) { 245 $user_query->results[ $meta->user_id ]->meta_value = $meta->meta_value; 246 } 247 } 248 } 249 } 250 add_action( 'bp_user_query_populate_extras', 'bp_members_filter_user_query_populate_extras_meta' ); 133 251 134 252 /** … … 241 359 ); 242 360 243 // This user can register!361 // This user can register! 244 362 } else { 245 363 … … 302 420 303 421 $message = implode( ' ', $message_parts ); 304 } else if ( 'nouveau' === bp_get_theme_package_id() ) {422 } elseif ( 'nouveau' === bp_get_theme_package_id() ) { 305 423 $message = sprintf( 306 424 /* translators: 1: The log in link `<a href="login_url">log in</a>`. 2: The lost password link `<a href="lost_password_url">log in</a>` */
Note: See TracChangeset
for help on using the changeset viewer.