Ticket #7049: admin-xprofile_updated_profile.diff
File admin-xprofile_updated_profile.diff, 3.2 KB (added by , 8 years ago) |
---|
-
bp-xprofile/classes/class-bp-xprofile-user-admin.php
250 250 $errors = false; 251 251 252 252 // Now we've checked for required fields, let's save the values. 253 $old_values = $new_values = array(); 253 254 foreach ( (array) $posted_field_ids as $field_id ) { 254 255 255 256 // Certain types of fields (checkboxes, multiselects) may come … … 257 258 // get overwritten by the default on the next edit. 258 259 $value = isset( $_POST['field_' . $field_id] ) ? $_POST['field_' . $field_id] : ''; 259 260 260 if ( ! xprofile_set_field_data( $field_id, $user_id, $value, $is_required[ $field_id ] ) ) { 261 // Save the old and new values. They will be 262 // passed to the filter and used to determine 263 // whether an activity item should be posted. 264 $old_values[ $field_id ] = array( 265 'value' => xprofile_get_field_data( $field_id, $user_id ), 266 'visibility' => xprofile_get_field_visibility_level( $field_id, $user_id ), 267 ); 268 269 // Update the field data and visibility level. 270 $visibility_level = ! empty( $_POST['field_' . $field_id . '_visibility'] ) ? $_POST['field_' . $field_id . '_visibility'] : 'public'; 271 xprofile_set_field_visibility_level( $field_id, $user_id, $visibility_level ); 272 $field_updated = xprofile_set_field_data( $field_id, $user_id, $value, $is_required[ $field_id ] ); 273 $value = xprofile_get_field_data( $field_id, $user_id ); 274 275 $new_values[ $field_id ] = array( 276 'value' => $value, 277 'visibility' => xprofile_get_field_visibility_level( $field_id, $user_id ), 278 ); 279 280 if ( ! $field_updated ) { 261 281 $errors = true; 262 282 } else { 263 283 … … 271 291 */ 272 292 do_action( 'xprofile_profile_field_data_updated', $field_id, $value ); 273 293 } 274 275 // Save the visibility level.276 $visibility_level = ! empty( $_POST['field_' . $field_id . '_visibility'] ) ? $_POST['field_' . $field_id . '_visibility'] : 'public';277 xprofile_set_field_visibility_level( $field_id, $user_id, $visibility_level );278 294 } 279 295 280 296 /** 281 * Fires after all of the profile fields have been saved.297 * Fires after all XProfile fields have been saved for the current profile. 282 298 * 283 299 * @since 1.0.0 284 300 * 285 * @param int $user_id ID of the user whose data is being saved. 286 * @param array $posted_field_ids IDs of the fields that were submitted. 287 * @param bool $errors Whether or not errors occurred during saving. 301 * @param int $value Displayed user ID. 302 * @param array $posted_field_ids Array of field IDs that were edited. 303 * @param bool $errors Whether or not any errors occurred. 304 * @param array $old_values Array of original values before updated. 305 * @param array $new_values Array of newly saved values after update. 288 306 */ 289 do_action( 'xprofile_updated_profile', $user_id, $posted_field_ids, $errors );307 do_action( 'xprofile_updated_profile', $user_id, $posted_field_ids, $errors, $old_values, $new_values ); 290 308 291 309 // Set the feedback messages. 292 310 if ( ! empty( $errors ) ) {