diff --git a/core/um-permalinks.php b/core/um-permalinks.php index 6878feba..c1ea7000 100644 --- a/core/um-permalinks.php +++ b/core/um-permalinks.php @@ -196,7 +196,15 @@ class UM_Permalinks { } if ( um_get_option('permalink_base') == 'name' ) { - $user_in_url = rawurlencode( strtolower( um_user('full_name') ) ); + $user_in_url = rawurlencode( strtolower( str_replace(" ",".",um_user('full_name') ) ) ); + } + + if ( um_get_option('permalink_base') == 'name_dash' ) { + $user_in_url = rawurlencode( strtolower( str_replace(" ","-",um_user('full_name') ) ) ); + } + + if ( um_get_option('permalink_base') == 'name_plus' ) { + $user_in_url = strtolower( str_replace(" ","+",um_user('full_name') ) ); } if ( get_option('permalink_structure') ) { diff --git a/core/um-rewrite.php b/core/um-rewrite.php index d9230e11..002a1f84 100644 --- a/core/um-rewrite.php +++ b/core/um-rewrite.php @@ -133,7 +133,7 @@ class UM_Rewrite { } - if ( um_get_option('permalink_base') == 'name' ) { + if ( in_array( um_get_option('permalink_base'), array('name','name_dash','name_dot','name_plus') ) ) { $user_id = $ultimatemember->user->user_exists_by_name( um_queried_user() ); } diff --git a/core/um-short-functions.php b/core/um-short-functions.php index 9ef4aa9a..56e32b71 100644 --- a/core/um-short-functions.php +++ b/core/um-short-functions.php @@ -63,6 +63,17 @@ return $uri; } + /*** + *** @user clean basename + ***/ + function um_clean_user_basename( $value ){ + + $value = str_replace('.', ' ', $value); + $value = str_replace('-', ' ', $value); + $value = str_replace('+', ' ', $value); + + return $value; + } /*** *** @convert template tags ***/ @@ -1193,7 +1204,7 @@ function um_user( $data, $attrs = null ) { case 'full_name': if ( um_user('first_name') && um_user('last_name') ) { - $full_name = um_user('first_name') . '.' . um_user('last_name'); + $full_name = um_user('first_name') . ' ' . um_user('last_name'); } else { $full_name = um_user('display_name'); } diff --git a/core/um-user.php b/core/um-user.php index 781a1537..c503ac4b 100644 --- a/core/um-user.php +++ b/core/um-user.php @@ -877,6 +877,7 @@ class UM_User { return count( $duplicates ); return false; } + /*** *** @user exists by name @@ -885,12 +886,14 @@ class UM_User { global $ultimatemember; $value = $ultimatemember->validation->safe_name_in_url( $value ); - + $value = um_clean_user_basename( $value ); + $ids = get_users(array( 'fields' => 'ID', 'meta_key' => 'full_name','meta_value' => $value ,'meta_compare' => '=') ); if ( isset( $ids[0] ) ) return $ids[0]; return false; } + /** * @function user_exists_by_id() diff --git a/um-config.php b/um-config.php index 4c8cb665..c70f2b91 100644 --- a/um-config.php +++ b/um-config.php @@ -110,7 +110,9 @@ $this->sections[] = array( 'desc' => 'e.g. ' . trailingslashit( um_get_core_page('user') ) .'username/', 'options' => array( 'user_login' => __('Username','ultimatemember'), - 'name' => __('First and Last Name','ultimatemember'), + 'name' => __('First and Last Name with \'.\'','ultimatemember'), + 'name_dash' => __('First and Last Name with \'-\'','ultimatemember'), + 'name_plus' => __('First and Last Name with \'+\'','ultimatemember'), 'user_id' => __('User ID','ultimatemember'), ), 'placeholder' => __('Select...','ultimatemember')