diff --git a/core/um-filters-avatars.php b/core/um-filters-avatars.php index c58d5ca5..f9483565 100644 --- a/core/um-filters-avatars.php +++ b/core/um-filters-avatars.php @@ -43,9 +43,16 @@ if( um_get_option('use_gravatars') && ! um_user('synced_profile_photo') && ! $has_profile_photo ){ $avatar_url = um_get_domain_protocol().'gravatar.com/avatar/'.um_user('synced_gravatar_hashed_id'); $avatar_url = add_query_arg('s',400, $avatar_url); - if( um_get_option('use_um_gravatar_default_image') ){ - $avatar_url = add_query_arg('d', um_get_default_avatar_uri(), $avatar_url ); + $gravatar_type = um_get_option('use_um_gravatar_default_builtin_image'); + + if( $gravatar_type == 'default' ){ + if( um_get_option('use_um_gravatar_default_image') ){ + $avatar_url = add_query_arg('d', um_get_default_avatar_uri(), $avatar_url ); + } + }else{ + $avatar_url = add_query_arg('d', $gravatar_type, $avatar_url ); } + } $avatar = ''; diff --git a/core/um-short-functions.php b/core/um-short-functions.php index a402fbd0..090dfcbf 100644 --- a/core/um-short-functions.php +++ b/core/um-short-functions.php @@ -1429,9 +1429,16 @@ function um_fetch_user( $user_id ) { 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); - if( um_get_option('use_um_gravatar_default_image') ){ - $avatar_uri = add_query_arg('d', um_get_default_avatar_uri(), $avatar_uri ); + $gravatar_type = um_get_option('use_um_gravatar_default_builtin_image'); + + if( $gravatar_type == 'default' ){ + if( um_get_option('use_um_gravatar_default_image') ){ + $avatar_uri = add_query_arg('d', um_get_default_avatar_uri(), $avatar_uri ); + } + }else{ + $avatar_uri = add_query_arg('d', $gravatar_type, $avatar_uri ); } + } return ''; diff --git a/um-config.php b/um-config.php index 5e09c729..1231ca26 100644 --- a/um-config.php +++ b/um-config.php @@ -181,6 +181,26 @@ $this->sections[] = array( 'off' => __('No','ultimatemember'), ), + array( + 'id' => 'use_um_gravatar_default_builtin_image', + 'type' => 'select', + 'title' => __( 'Use Gravatar builtin image','ultimatemember' ), + 'desc' => __( 'Gravatar has a number of built in options which you can also use as defaults','ultimatemember' ), + 'default' => 'default', + 'options' => array( + 'default' => __('Default','ultimatemember'), + '404' => __('404 ( File Not Found response )','ultimatemember'), + 'mm' => __('Mystery Man','ultimatemember'), + 'identicon' => __('Identicon','ultimatemember'), + 'monsterid' => __('Monsterid','ultimatemember'), + 'wavatar' => __('Wavatar','ultimatemember'), + 'retro' => __('Retro','ultimatemember'), + 'blank' => __('Blank ( a transparent PNG image )','ultimatemember'), + + ), + 'required' => array( 'use_gravatars', '=', 1 ), + 'select2' => array( 'allowClear' => 0, 'minimumResultsForSearch' => -1 ), + ), array( 'id' => 'use_um_gravatar_default_image', 'type' => 'switch', @@ -189,7 +209,7 @@ $this->sections[] = array( 'desc' => __('Do you want to use the plugin default avatar instead of the gravatar default photo (If the user did not upload a custom profile photo / avatar)','ultimatemember'), 'on' => __('Yes','ultimatemember'), 'off' => __('No','ultimatemember'), - 'required' => array( 'use_gravatars', '=', 1 ), + 'required' => array( 'use_um_gravatar_default_builtin_image', '=', 'default' ), ), array(