PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.2.2
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.2.2
4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Classes / UserAvatar.php
wp-user-avatar / src / Classes Last commit date
Installer 5 years ago AdminNotices.php 4 years ago AjaxHandler.php 4 years ago Autologin.php 4 years ago BuddyPressBbPress.php 5 years ago EditUserProfile.php 4 years ago ExtensionManager.php 5 years ago FileUploader.php 4 years ago FormPreviewHandler.php 5 years ago FormRepository.php 4 years ago FormShortcodeDefaults.php 5 years ago GDPR.php 5 years ago GlobalSiteAccess.php 4 years ago ImageUploader.php 4 years ago LoginAuth.php 4 years ago Miscellaneous.php 5 years ago ModifyRedirectDefaultLinks.php 5 years ago PPRESS_Session.php 4 years ago PROFILEPRESS_sql.php 5 years ago PasswordReset.php 5 years ago ProfileUrlRewrite.php 4 years ago RegistrationAuth.php 4 years ago SendEmail.php 5 years ago ShortcodeThemeFactory.php 5 years ago UserAvatar.php 4 years ago UserSignupLocationListingPage.php 5 years ago UsernameEmailRestrictLogin.php 5 years ago WelcomeEmailAfterSignup.php 5 years ago default-email-template.php 5 years ago index.php 5 years ago
UserAvatar.php
227 lines
1 <?php
2
3 namespace ProfilePress\Core\Classes;
4
5 class UserAvatar
6 {
7 public function __construct()
8 {
9 add_filter('pre_get_avatar_data', function ($args, $id_or_email) {
10
11 if (ppress_var($args, 'force_default') === true || ppress_var($args, 'ppress_skip') === true) return $args;
12
13 $size = apply_filters('ppress_user_avatar_image_size', ppress_var($args, 'size'), $id_or_email);
14
15 $original = ppress_var($args, 'ppress-full') === true;
16
17 if ( ! empty($size)) $size = absint($size);
18
19 if (self::user_has_pp_avatar($id_or_email)) {
20
21 $args['url'] = self::get_pp_avatar_url($id_or_email, $size, $original);
22
23 } else {
24 /** WP User Avatar Adapter STARTS */
25 global $wpua_disable_gravatar, $wpua_functions;
26
27 // First checking custom avatar.
28 if ($wpua_disable_gravatar == '1') {
29 $args['url'] = $wpua_functions->wpua_get_default_avatar_url($size);
30 } else {
31
32 $has_valid_url = $wpua_functions->wpua_has_gravatar($id_or_email);
33
34 if ( ! $has_valid_url) {
35 $wpua_size = ! empty($size) ? $size : 96;
36 $args['url'] = $wpua_functions->wpua_get_default_avatar_url($wpua_size);
37 }
38 }
39 /** WP User Avatar Adapter ENDS */
40 }
41
42 if ( ! empty($args['url'])) {
43 $args['found_avatar'] = true;
44 }
45
46 return $args;
47
48 }, PHP_INT_MAX - 1, 2);
49
50 add_filter('get_avatar', function ($avatar, $id_or_email, $size, $default, $alt, $args) {
51
52 if (ppress_var($args, 'force_default') !== true && ppress_var($args, 'ppress_skip') !== true) {
53 if (self::user_has_pp_avatar($id_or_email)) {
54 $class = [];
55 if (isset($args['class'])) {
56 if (is_array($args['class'])) {
57 $class = array_merge($class, $args['class']);
58 } else {
59 $class[] = $args['class'];
60 }
61 }
62
63 $class = esc_attr(implode(' ', $class));
64
65 $original = ppress_var($args, 'ppress-full') === true;
66
67 $avatar = self::get_avatar_img($id_or_email, $size, $alt, $class, '', $original);
68 }
69 }
70
71 return $avatar;
72
73 }, PHP_INT_MAX - 1, 6);
74 }
75
76 public static function user_has_pp_avatar($id_or_email)
77 {
78 $user_id = self::get_avatar_user_id($id_or_email);
79
80 $avatar_url = get_user_meta($user_id, 'pp_profile_avatar', true);
81
82 if ( ! empty($avatar_url) && is_string($avatar_url)) return true;
83
84 /** WP User Avatar Adapter STARTS */
85 global $wpdb, $blog_id, $avatar_default, $wpua_avatar_default;
86
87 $attachment_id = get_user_meta($user_id, $wpdb->get_blog_prefix($blog_id) . 'user_avatar', true);
88 // Check if avatar is same as default avatar or on excluded list
89 if ( ! empty($attachment_id) && ($avatar_default != 'wp_user_avatar' || $attachment_id != $wpua_avatar_default) && wp_attachment_is_image($attachment_id)) {
90 return true;
91 }
92
93 /** WP User Avatar Adapter ENDS */
94
95 return false;
96 }
97
98 /**
99 * @param $id_or_email
100 *
101 * @param bool $size
102 *
103 * @return string
104 */
105 public static function get_pp_avatar_url($id_or_email, $size = false, $original = false)
106 {
107 $user_id = self::get_avatar_user_id($id_or_email);
108
109 $avatar_url = get_user_meta($user_id, 'pp_profile_avatar', true);
110
111 if ( ! empty($avatar_url) && is_string($avatar_url)) {
112
113 return PPRESS_AVATAR_UPLOAD_URL . "$avatar_url";
114 }
115
116 /** WP User Avatar Adapter STARTS */
117 global $wpdb, $blog_id;
118
119 $attachment_id = get_the_author_meta($wpdb->get_blog_prefix($blog_id) . 'user_avatar', $user_id);
120
121 if ( ! empty($attachment_id) && wp_attachment_is_image($attachment_id)) {
122
123 if ( ! empty($size) && ! $original) {
124
125 $size = is_numeric($size) ? [$size, $size] : $size;
126
127 return ppress_var(wp_get_attachment_image_src($attachment_id, $size), 0);
128 }
129
130 return wp_get_attachment_url($attachment_id);
131 }
132
133 /** WP User Avatar Adapter ENDS */
134
135 return false;
136 }
137
138 /**
139 * HTML image for the user profile
140 *
141 * @param $id_or_email
142 * @param string $size
143 * @param string $alt
144 * @param string $class
145 * @param string $css_id
146 * @param bool $original
147 *
148 * @return mixed
149 */
150 public static function get_avatar_img($id_or_email, $size = '96', $alt = '', $class = '', $css_id = '', $original = true)
151 {
152 $alt = esc_attr($alt);
153
154 if ( ! is_numeric($size)) $size = '96';
155
156 if ( ! empty($css_id)) $css_id = " id='$css_id'";
157
158 $size = apply_filters('ppress_user_avatar_image_size', absint($size), $id_or_email);
159
160 $avatar_url = get_avatar_url($id_or_email, ['size' => $size, 'ppress-full' => $original]);
161
162 $alt_attr = ! empty($alt) ? " alt=\"{$alt}\"" : '';
163
164 return "<img data-del=\"avatar\"" . $alt_attr . " src='{$avatar_url}' class='avatar pp-user-avatar avatar-{$size} photo {$class}' height='{$size}' width='{$size}'$css_id/>";
165 }
166
167 /**
168 * Culled from get_avatar_data()
169 *
170 * @param mixed $id_or_email
171 *
172 * @return bool|int
173 */
174 public static function get_avatar_user_id($id_or_email)
175 {
176 if (is_object($id_or_email) && isset($id_or_email->comment_ID)) {
177
178 $email = get_comment($id_or_email)->comment_author_email;
179
180 return ppress_var_obj(get_user_by('email', $email), 'ID');
181 }
182
183 if (is_numeric($id_or_email)) {
184 return ppress_var_obj(get_user_by('id', absint($id_or_email)), 'ID');
185 }
186
187 if (is_string($id_or_email)) {
188
189 if ( ! strpos($id_or_email, '@md5.gravatar.com')) {
190 // email address
191 return ppress_var_obj(get_user_by('email', $id_or_email), 'ID');
192 }
193 }
194
195 if ($id_or_email instanceof \WP_User) {
196 return $id_or_email->ID;
197 }
198
199 if ($id_or_email instanceof \WP_Post) {
200 return get_user_by('id', (int)$id_or_email->post_author)->ID;
201 }
202
203 if ($id_or_email instanceof \WP_Comment) {
204
205 if ( ! is_avatar_comment_type(get_comment_type($id_or_email))) return false;
206
207 if ( ! empty($id_or_email->user_id)) return $id_or_email->user_id;
208
209 if ( ! empty($id_or_email->comment_author_email)) {
210 return get_user_by('email', $id_or_email->comment_author_email)->ID;
211 }
212 }
213
214 return false;
215 }
216
217 public static function get_instance()
218 {
219 static $instance = null;
220
221 if (is_null($instance)) {
222 $instance = new self();
223 }
224
225 return $instance;
226 }
227 }