Esempio n. 1
0
 function profile_url()
 {
     global $ultimatemember, $wpdb;
     $page_id = $this->core['user'];
     $profile_url = get_permalink($page_id);
     if (function_exists('icl_get_current_language') && icl_get_current_language() != icl_get_default_language()) {
         if (get_the_ID() > 0 && get_post_meta(get_the_ID(), '_um_wpml_user', true) == 1) {
             $profile_url = get_permalink(get_the_ID());
         }
     }
     // WPML compatibility
     if (function_exists('icl_object_id')) {
         $language_code = ICL_LANGUAGE_CODE;
         $lang_post_id = icl_object_id($page_id, 'page', true, $language_code);
         if ($lang_post_id != 0) {
             $profile_url = get_permalink($lang_post_id);
         } else {
             // No page found, it's most likely the homepage
             global $sitepress;
             $profile_url = $sitepress->language_url($language);
         }
     }
     if (um_get_option('permalink_base') == 'user_login') {
         $user_in_url = um_user('user_login');
         if (is_email($user_in_url)) {
             $user_in_url = str_replace('@', '', $user_in_url);
             if (($pos = strrpos($user_in_url, '.')) !== false) {
                 $search_length = strlen('.');
                 $user_in_url = substr_replace($user_in_url, '-', $pos, $search_length);
             }
         } else {
             $user_in_url = sanitize_title($user_in_url);
         }
     }
     if (um_get_option('permalink_base') == 'user_id') {
         $user_in_url = um_user('ID');
     }
     $full_name_permalinks = array('name', 'name_dash', 'name_plus');
     if (in_array(um_get_option('permalink_base'), $full_name_permalinks)) {
         $full_name = um_user('full_name');
         $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');
         }
         switch (um_get_option('permalink_base')) {
             case 'name':
                 $user_in_url = rawurlencode(strtolower(str_replace(" ", ".", $full_name)));
                 break;
             case 'name_dash':
                 $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')) {
         $profile_url = trailingslashit(untrailingslashit($profile_url));
         $profile_url = $profile_url . $user_in_url . '/';
     } else {
         $profile_url = add_query_arg('um_user', $user_in_url, $profile_url);
     }
     return $profile_url;
 }
 function profile_url()
 {
     global $ultimatemember, $wpdb;
     $page_id = $this->core['user'];
     $profile_url = get_permalink($page_id);
     $profile_url = apply_filters('um_localize_permalink_filter', $this->core, $page_id, $profile_url);
     // Username
     if (um_get_option('permalink_base') == 'user_login') {
         $user_in_url = um_user('user_login');
         if (is_email($user_in_url)) {
             $user_email = $user_in_url;
             $user_in_url = str_replace('@', '', $user_in_url);
             if (($pos = strrpos($user_in_url, '.')) !== false) {
                 $search_length = strlen('.');
                 $user_in_url = substr_replace($user_in_url, '-', $pos, $search_length);
             }
             update_user_meta(um_user('ID'), 'um_email_as_username_' . $user_in_url, $user_email);
         } else {
             $user_in_url = sanitize_title($user_in_url);
         }
     }
     // User ID
     if (um_get_option('permalink_base') == 'user_id') {
         $user_in_url = um_user('ID');
     }
     // Fisrt and Last name
     $full_name_permalinks = array('name', 'name_dash', 'name_plus');
     if (in_array(um_get_option('permalink_base'), $full_name_permalinks)) {
         $full_name = um_user('full_name');
         $last_name = um_user('last_name');
         $first_name = um_user('first_name');
         $count = intval(um_is_meta_value_exists('full_name', $full_name));
         if ($count > 1) {
             $full_name .= ' ' . um_user('ID');
         }
         switch (um_get_option('permalink_base')) {
             case 'name':
                 // dotted
                 $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 (strpos($full_name, '.') > -1) {
                     $full_name = str_replace('.', ' ', $full_name);
                     $difficulties++;
                 }
                 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':
                 // dashed
                 $difficulties = 0;
                 $full_name_slug = strtolower($full_name);
                 // if last name has dashed replace with underscore
                 if (strpos($last_name, '-') > -1 && strpos($full_name, '-') > -1) {
                     $difficulties++;
                     $full_name = str_replace('-', '_', $full_name);
                 }
                 // if first name has dashed replace with underscore
                 if (strpos($first_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 = rawurlencode($full_name_slug);
                 break;
             case 'name_plus':
                 // plus
                 $difficulties = 0;
                 $full_name_slug = strtolower($full_name);
                 // if last name has dashed replace with underscore
                 if (strpos($last_name, '+') > -1 && strpos($full_name, '+') > -1) {
                     $difficulties++;
                     $full_name = str_replace('-', '_', $full_name);
                 }
                 // if first name has dashed replace with underscore
                 if (strpos($first_name, '+') > -1 && strpos($full_name, '+') > -1) {
                     $difficulties++;
                     $full_name = str_replace('-', '_', $full_name);
                 }
                 if (strpos($last_name, '-') > -1 || strpos($first_name, '-') > -1 || strpos($full_name, '-') > -1) {
                     $difficulties++;
                 }
                 // if name has space, replace with dash
                 $full_name_slug = str_replace(' ', '+', $full_name_slug);
                 $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;
         }
     }
     if (get_option('permalink_structure')) {
         $profile_url = trailingslashit(untrailingslashit($profile_url));
         $profile_url = $profile_url . $user_in_url . '/';
     } else {
         $profile_url = add_query_arg('um_user', $user_in_url, $profile_url);
     }
     return $profile_url;
 }