diff --git a/core/um-filters-members.php b/core/um-filters-members.php index 80d400ed..ab658054 100644 --- a/core/um-filters-members.php +++ b/core/um-filters-members.php @@ -138,6 +138,11 @@ 'key' => 'profile_photo', // from upload form 'value' => '', 'compare' => '!=' + ), + array( + 'key' => 'synced_gravatar_hashed_id', // gravatar + 'value' => '', + 'compare' => '!=' ) ); @@ -152,6 +157,7 @@ ); } + // show specific usernames if ( isset( $show_these_users ) && $show_these_users && is_array( $show_these_users ) ) { foreach( $show_these_users as $username ) { @@ -176,6 +182,7 @@ if ( isset( $sortby ) ) { + if ( $sortby == 'other' && $sortby_custom ) { $query_args['meta_key'] = $sortby_custom; @@ -232,3 +239,4 @@ return $result; } + diff --git a/core/um-short-functions.php b/core/um-short-functions.php index 45407e34..e4828bff 100644 --- a/core/um-short-functions.php +++ b/core/um-short-functions.php @@ -1163,11 +1163,12 @@ function um_fetch_user( $user_id ) { /*** *** @default avatar ***/ - function um_get_default_avatar_uri() { + function um_get_default_avatar_uri( $user_id = '' ) { $uri = um_get_option('default_avatar'); $uri = $uri['url']; if ( !$uri ) $uri = um_url . 'assets/img/default_avatar.jpg'; + return $uri; } @@ -1194,173 +1195,197 @@ function um_fetch_user( $user_id ) { return ''; } -function um_user( $data, $attrs = null ) { + function um_user( $data, $attrs = null ) { - global $ultimatemember; + global $ultimatemember; - switch($data){ + switch($data){ - default: + default: - $value = um_profile($data); + $value = um_profile($data); - if ( $ultimatemember->validation->is_serialized( $value ) ) { - $value = unserialize( $value ); - } - - return $value; - break; - - case 'full_name': - - if ( 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'); - } - - $full_name = $ultimatemember->validation->safe_name_in_url( $full_name ); - - // update full_name changed - if( um_profile( $data ) !== $full_name ) - { - update_user_meta( um_user('ID'), 'full_name', $full_name ); - } - - return $full_name; - - break; - - case 'display_name': - - $op = um_get_option('display_name'); - - $name = ''; - - - if ( $op == 'default' ) { - $name = um_profile('display_name'); - } - - if ( $op == 'nickname' ) { - $name = um_profile('nickname'); - } - - if ( $op == 'full_name' ) { - if ( um_user('first_name') && um_user('last_name') ) { - $name = um_user('first_name') . ' ' . um_user('last_name'); - } else { - $name = um_profile( $data ); + if ( $ultimatemember->validation->is_serialized( $value ) ) { + $value = unserialize( $value ); } - if ( ! $name ) { + + return $value; + break; + + case 'full_name': + + if ( 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'); + } + + $full_name = $ultimatemember->validation->safe_name_in_url( $full_name ); + + // update full_name changed + if( um_profile( $data ) !== $full_name ) + { + update_user_meta( um_user('ID'), 'full_name', $full_name ); + } + + return $full_name; + + break; + + case 'display_name': + + $op = um_get_option('display_name'); + + $name = ''; + + + if ( $op == 'default' ) { + $name = um_profile('display_name'); + } + + if ( $op == 'nickname' ) { + $name = um_profile('nickname'); + } + + if ( $op == 'full_name' ) { + if ( um_user('first_name') && um_user('last_name') ) { + $name = um_user('first_name') . ' ' . um_user('last_name'); + } else { + $name = um_profile( $data ); + } + if ( ! $name ) { + $name = um_user('user_login'); + } + } + + if ( $op == 'sur_name' ) { + if ( um_user('first_name') && um_user('last_name') ) { + $name = um_user('last_name') . ' ' . um_user('first_name'); + } else { + $name = um_profile( $data ); + } + } + + if ( $op == 'first_name' ) { + if ( um_user('first_name') ) { + $name = um_user('first_name'); + } else { + $name = um_profile( $data ); + } + } + + if ( $op == 'username' ) { $name = um_user('user_login'); } - } - if ( $op == 'sur_name' ) { - if ( um_user('first_name') && um_user('last_name') ) { - $name = um_user('last_name') . ' ' . um_user('first_name'); + if ( $op == 'initial_name' ) { + if ( um_user('first_name') && um_user('last_name') ) { + $initial = um_user('last_name'); + $name = um_user('first_name') . ' ' . $initial[0]; + } else { + $name = um_profile( $data ); + } + } + + if ( $op == 'initial_name_f' ) { + if ( um_user('first_name') && um_user('last_name') ) { + $initial = um_user('first_name'); + $name = $initial[0] . ' ' . um_user('last_name'); + } else { + $name = um_profile( $data ); + } + } + + if ( $op == 'field' && um_get_option('display_name_field') != '' ) { + $fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') )); + $name = ''; + foreach( $fields as $field ) { + $name .= um_profile( $field ) . ' '; + } + } + + return apply_filters('um_user_display_name_filter', $name, um_user('ID'), ( $attrs == 'html' ) ? 1 : 0 ); + + break; + + case 'role_select': + case 'role_radio': + return $ultimatemember->user->get_role_name( um_user('role') ); + break; + + case 'submitted': + $array = um_profile($data); + if ( empty( $array ) ) return ''; + $array = unserialize( $array ); + return $array; + break; + + case 'password_reset_link': + return $ultimatemember->password->reset_url(); + break; + + case 'account_activation_link': + return $ultimatemember->permalinks->activate_url(); + break; + + case 'profile_photo': + + $has_profile_photo = false; + + if ( um_profile('profile_photo') ) { + $avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs ); + $has_profile_photo = true; } else { - $name = um_profile( $data ); + $avatar_uri = um_get_default_avatar_uri( um_user('ID') ); } - } - if ( $op == 'first_name' ) { - if ( um_user('first_name') ) { - $name = um_user('first_name'); + $avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID') ); + + if ( $avatar_uri ) + + if( um_get_option('use_gravatars') && ! um_user('synced_profile_photo') && ! $has_profile_photo ){ + $avatar_uri = um_get_domain_protocol().'gravatar.com/avatar/'.um_user('synced_gravatar_hashed_id'); + $avatar_uri = add_query_arg('s',400, $avatar_uri); + } + + return ''; + + if ( !$avatar_uri ) + return ''; + + break; + + case 'cover_photo': + if ( um_profile('cover_photo') ) { + $cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs ); } else { - $name = um_profile( $data ); + $cover_uri = um_get_default_cover_uri(); } - } - if ( $op == 'username' ) { - $name = um_user('user_login'); - } + if ( $cover_uri ) + return ''; - if ( $op == 'initial_name' ) { - if ( um_user('first_name') && um_user('last_name') ) { - $initial = um_user('last_name'); - $name = um_user('first_name') . ' ' . $initial[0]; - } else { - $name = um_profile( $data ); - } - } + if ( !$cover_uri ) + return ''; - if ( $op == 'initial_name_f' ) { - if ( um_user('first_name') && um_user('last_name') ) { - $initial = um_user('first_name'); - $name = $initial[0] . ' ' . um_user('last_name'); - } else { - $name = um_profile( $data ); - } - } + break; - if ( $op == 'field' && um_get_option('display_name_field') != '' ) { - $fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') )); - $name = ''; - foreach( $fields as $field ) { - $name .= um_profile( $field ) . ' '; - } - } - - return apply_filters('um_user_display_name_filter', $name, um_user('ID'), ( $attrs == 'html' ) ? 1 : 0 ); - - break; - - case 'role_select': - case 'role_radio': - return $ultimatemember->user->get_role_name( um_user('role') ); - break; - - case 'submitted': - $array = um_profile($data); - if ( empty( $array ) ) return ''; - $array = unserialize( $array ); - return $array; - break; - - case 'password_reset_link': - return $ultimatemember->password->reset_url(); - break; - - case 'account_activation_link': - return $ultimatemember->permalinks->activate_url(); - break; - - case 'profile_photo': - - if ( um_profile('profile_photo') ) { - $avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs ); - } else { - $avatar_uri = um_get_default_avatar_uri(); - } - - $avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID') ); - - if ( $avatar_uri ) - return ''; - - if ( !$avatar_uri ) - return ''; - - break; - - case 'cover_photo': - if ( um_profile('cover_photo') ) { - $cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs ); - } else { - $cover_uri = um_get_default_cover_uri(); - } - - if ( $cover_uri ) - return ''; - - if ( !$cover_uri ) - return ''; - - break; + } } -} + /** + * Get server protocol + * @return string + */ + function um_get_domain_protocol(){ + + if ( is_ssl() ) { + $protocol = 'https://'; + } else { + $protocol = 'http://'; + } + + return $protocol; + }