mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
Fix profile permalink
This commit is contained in:
+59
-15
@@ -81,20 +81,35 @@
|
||||
add_filter('um_clean_user_basename_filter','um_clean_user_basename_filter',2,10);
|
||||
function um_clean_user_basename_filter( $value, $raw ){
|
||||
global $wpdb;
|
||||
$permalink_base = um_get_option('permalink_base');
|
||||
|
||||
|
||||
$permalink_base = um_get_option('permalink_base');
|
||||
$user_query = new WP_User_Query(
|
||||
array(
|
||||
'meta_query' => array(
|
||||
'relation' => 'AND',
|
||||
array(
|
||||
'key' => 'um_user_profile_url_slug_name_'.$raw,
|
||||
),
|
||||
array(
|
||||
'key' => 'account_status',
|
||||
'value' => 'awaiting_admin_review',
|
||||
'compare' => '!='
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
);
|
||||
$result = current( $user_query->get_results() );
|
||||
$slugname = '';
|
||||
|
||||
if( isset( $result->data->ID ) ){
|
||||
$slugname = get_user_meta( $result->data->ID, 'um_user_profile_url_slug_name_'.$raw, true );
|
||||
$value = $slugname;
|
||||
}
|
||||
|
||||
switch( $permalink_base ){
|
||||
case 'name':
|
||||
|
||||
$slugname = $wpdb->get_var(
|
||||
$wpdb->prepare(
|
||||
"SELECT meta_value FROM ".$wpdb->usermeta." WHERE meta_key = %s ",
|
||||
'um_user_profile_url_slug_name_'.$raw,
|
||||
$raw
|
||||
)
|
||||
);
|
||||
|
||||
$value = $slugname;
|
||||
if( ! empty( $value ) && strrpos( $value ,".") > -1 ){
|
||||
$value = str_replace( '.', ' ', $value );
|
||||
}
|
||||
@@ -106,11 +121,40 @@
|
||||
|
||||
break;
|
||||
|
||||
case 'name_dash':
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"-") > -1 ){
|
||||
$value = str_replace( '-', ' ', $value );
|
||||
}
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'name_plus':
|
||||
|
||||
if( ! empty( $value ) && strrpos( $value ,"+") > -1 ){
|
||||
$value = str_replace( '+', ' ', $value );
|
||||
}
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 ){
|
||||
$value = str_replace( '_', '+', $value );
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 && substr( $value , "_") == 1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
// Checks if last name has a dash
|
||||
if( ! empty( $value ) && strrpos( $value ,"_") > -1 && substr( $value , "_") == 1 ){
|
||||
$value = str_replace( '_', '-', $value );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
+53
-2
@@ -260,14 +260,65 @@ class UM_Permalinks {
|
||||
$user_in_url = rawurlencode( $full_name_slug );
|
||||
|
||||
break;
|
||||
|
||||
case 'name_dash':
|
||||
|
||||
$difficulties = 0;
|
||||
|
||||
$full_name_slug = strtolower( $full_name );
|
||||
|
||||
// if name has dashed replace with underscore
|
||||
if( strpos( $last_name, '-') > -1 && strpos( $full_name, '-' ) > -1 ){
|
||||
$difficulties++;
|
||||
$full_name = str_replace('-', '_', $full_name );
|
||||
}
|
||||
$user_in_url = rawurlencode( strtolower( str_replace(" ", "-", $full_name ) ) );
|
||||
// if name has space, replace with dash
|
||||
$full_name_slug = str_replace( ' ' , '-', $full_name_slug );
|
||||
|
||||
// if name has period
|
||||
if( strpos( $last_name, '.') > -1 && strpos( $full_name, '.' ) > -1 ){
|
||||
$difficulties++;
|
||||
}
|
||||
|
||||
$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_plus':
|
||||
$user_in_url = strtolower( str_replace(" ", "+" , $full_name ) );
|
||||
|
||||
$difficulties = 0;
|
||||
|
||||
$full_name_slug = strtolower( $full_name );
|
||||
|
||||
// if name has dashed replace with underscore
|
||||
if( strpos( $last_name, '+') > -1 && strpos( $full_name, '+' ) > -1 ){
|
||||
$difficulties++;
|
||||
$full_name = str_replace('-', '_', $full_name );
|
||||
}
|
||||
// if name has space, replace with dash
|
||||
$full_name_slug = str_replace( ' ' , '+', $full_name_slug );
|
||||
|
||||
// if name has period
|
||||
if( strpos( $last_name, '.') > -1 && strpos( $full_name, '.' ) > -1 ){
|
||||
$difficulties++;
|
||||
}
|
||||
|
||||
$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 = $full_name_slug;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -895,7 +895,7 @@ class UM_User {
|
||||
}
|
||||
|
||||
$ids = get_users(array( 'fields' => 'ID', 'meta_key' => 'full_name','meta_value' => $value ,'meta_compare' => '=') );
|
||||
if ( isset( $ids[0] ) )
|
||||
if ( isset( $ids[0] ) && ! empty( $ids[0] ) )
|
||||
return $ids[0];
|
||||
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user