Fix permalink base name format and redirect loop in profile page

This commit is contained in:
champsupertramp
2016-03-21 23:42:37 +08:00
parent 432c0fa01a
commit 5a74e0d7de
5 changed files with 68 additions and 16 deletions
+33 -5
View File
@@ -223,10 +223,7 @@ class UM_Permalinks {
$last_name = um_user( 'last_name' );
$count = intval( um_is_meta_value_exists( 'full_name', $full_name ) );
if( strpos( $last_name, '-') > -1 && strpos( $full_name, '-' ) > -1 ){
$full_name = str_replace('-', '_', $full_name );
}
if( $count > 1 )
{
$full_name .= ' ' . um_user( 'ID' );
@@ -235,15 +232,46 @@ class UM_Permalinks {
switch( um_get_option('permalink_base') )
{
case 'name':
$user_in_url = rawurlencode( strtolower( str_replace( " ", ".", $full_name ) ) );
$full_name_slug = $full_name;
$difficulties = 0;
if( strpos( $full_name, '.' ) > -1 ){
$full_name = str_replace(".", "_", $full_name );
$difficulties++;
}
$full_name = strtolower( str_replace( " ", ".", $full_name ) );
if( strpos( $full_name, '_.' ) > -1 ){
$full_name = str_replace('_.', '_', $full_name );
$difficulties++;
}
$full_name_slug = str_replace( '-' , '.', $full_name_slug );
$full_name_slug = str_replace( ' ' , '.', $full_name_slug );
$full_name_slug = str_replace( '..' , '.', $full_name_slug );
if( $difficulties > 0 ){
update_user_meta( um_user('ID'), 'um_user_profile_url_slug_name_'.$full_name_slug, $full_name );
}
$user_in_url = rawurlencode( $full_name_slug );
break;
case 'name_dash':
if( strpos( $last_name, '-') > -1 && strpos( $full_name, '-' ) > -1 ){
$full_name = str_replace('-', '_', $full_name );
}
$user_in_url = rawurlencode( strtolower( str_replace(" ", "-", $full_name ) ) );
break;
case 'name_plus':
$user_in_url = strtolower( str_replace(" ", "+" , $full_name ) );
break;
}
}
if ( get_option('permalink_structure') ) {