Fix duplicate profile url slugs and cases

This commit is contained in:
champsupertramp
2016-08-27 21:58:44 +08:00
parent ac53532b56
commit 06f40d452c
5 changed files with 147 additions and 99 deletions
+21 -41
View File
@@ -7,46 +7,6 @@
function um_update_profile_full_name( $changes ) {
global $ultimatemember;
if ( isset( $changes['first_name'] ) && isset( $changes['last_name'] ) ) {
$full_name = $ultimatemember->user->profile['display_name'];
$full_name = $ultimatemember->validation->safe_name_in_url( $full_name );
/* duplicate or not */
if ( $ultimatemember->user->user_has_metadata( 'full_name', $full_name ) ) {
$duplicates = $ultimatemember->user->user_has_metadata( 'full_name', $full_name );
if ( !get_option("um_duplicate_name_{$full_name}") ) {
update_option("um_duplicate_name_{$full_name}", $duplicates );
$full_name = $full_name . '.' . $duplicates;
} else {
if ( um_user('_duplicate_id') ) {
$duplicates = um_user('_duplicate_id');
} else {
$duplicates = get_option("um_duplicate_name_{$full_name}") + 1;
update_option("um_duplicate_name_{$full_name}", $duplicates );
update_user_meta( $ultimatemember->user->id, '_duplicate_id', $duplicates );
}
$full_name = $full_name . '.' . $duplicates;
}
} else {
if ( um_user('_duplicate_id') && $full_name != str_replace( '.' . um_user('_duplicate_id'), '' , um_user('full_name') ) ) {
$duplicates = um_user('_duplicate_id');
$full_name = str_replace( '.' . um_user('_duplicate_id'), '', $full_name);
}
}
update_user_meta( $ultimatemember->user->id, 'full_name', $full_name );
}
// Sync display name changes
$option = um_get_option('display_name');
@@ -78,6 +38,26 @@
}
if ( isset( $update_name ) ) {
wp_update_user( array( 'ID' => $user_id, 'display_name' => $update_name ) );
$return = wp_update_user( array( 'ID' => $user_id, 'display_name' => $update_name ) );
if( is_wp_error( $return ) ) {
wp_die( $return->get_error_message() );
}
}
if ( isset( $changes['first_name'] ) && isset( $changes['last_name'] ) ) {
$full_name = $ultimatemember->user->profile['display_name'];
$full_name = $ultimatemember->validation->safe_name_in_url( $full_name );
update_user_meta( $ultimatemember->user->id, 'full_name', $full_name );
}
}