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;
+ }