PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
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
AdminNotices.php 5 years ago AjaxHandler.php 5 years ago Autologin.php 5 years ago BuddyPressBbPress.php 5 years ago EditUserProfile.php 5 years ago ExtensionManager.php 5 years ago FileUploader.php 5 years ago FormPreviewHandler.php 5 years ago FormRepository.php 5 years ago FormShortcodeDefaults.php 5 years ago GDPR.php 5 years ago GlobalSiteAccess.php 5 years ago ImageUploader.php 5 years ago LoginAuth.php 5 years ago Miscellaneous.php 5 years ago ModifyRedirectDefaultLinks.php 5 years ago PPRESS_Session.php 5 years ago PROFILEPRESS_sql.php 5 years ago PasswordReset.php 5 years ago ProfileUrlRewrite.php 5 years ago RegistrationAuth.php 5 years ago SendEmail.php 5 years ago ShortcodeThemeFactory.php 5 years ago UserAvatar.php 5 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
208 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 if (self::user_has_pp_avatar($id_or_email)) {
14
15 $args['url'] = self::get_pp_avatar_url($id_or_email);
16
17 } else {
18 /** WP User Avatar Adapter STARTS */
19 global $wpua_disable_gravatar, $wpua_functions;
20
21 // First checking custom avatar.
22 if ($wpua_disable_gravatar == '1' || ! $wpua_functions->wpua_has_gravatar($id_or_email)) {
23 $args['url'] = $wpua_functions->wpua_get_default_avatar_url(ppress_var($args, 'size'));
24 }
25 /** WP User Avatar Adapter ENDS */
26 }
27
28 if ( ! empty($args['url'])) {
29 $args['found_avatar'] = true;
30 }
31
32 return $args;
33
34 }, 999999999999, 2);
35
36 add_filter('get_avatar', function ($avatar, $id_or_email, $size, $default, $alt, $args) {
37
38 if (ppress_var($args, 'force_default') !== true && ppress_var($args, 'ppress_skip') !== true) {
39 if (self::user_has_pp_avatar($id_or_email)) {
40 $class = [];
41 if (isset($args['class'])) {
42 if (is_array($args['class'])) {
43 $class = array_merge($class, $args['class']);
44 } else {
45 $class[] = $args['class'];
46 }
47 }
48
49 $class = esc_attr(implode(' ', $class));
50
51 $avatar = self::get_avatar_img($id_or_email, $size, $alt, $class);
52 }
53 }
54
55 return $avatar;
56
57 }, 999999999999, 6);
58 }
59
60 public static function user_has_pp_avatar($id_or_email)
61 {
62 $user_id = self::get_avatar_user_id($id_or_email);
63
64 $avatar_url = get_user_meta($user_id, 'pp_profile_avatar', true);
65
66 if ( ! empty($avatar_url) && is_string($avatar_url)) return true;
67
68 /** WP User Avatar Adapter STARTS */
69 global $wpdb, $blog_id, $avatar_default, $wpua_avatar_default;
70
71 $attachment_id = get_user_meta($user_id, $wpdb->get_blog_prefix($blog_id) . 'user_avatar', true);
72 // Check if avatar is same as default avatar or on excluded list
73 if ( ! empty($attachment_id) && ($avatar_default != 'wp_user_avatar' || $attachment_id != $wpua_avatar_default) && wp_attachment_is_image($attachment_id)) {
74 return true;
75 }
76
77 /** WP User Avatar Adapter ENDS */
78
79 return false;
80 }
81
82 /**
83 * @param $id_or_email
84 *
85 * @param bool $size
86 *
87 * @return string
88 */
89 public static function get_pp_avatar_url($id_or_email, $size = false)
90 {
91 $user_id = self::get_avatar_user_id($id_or_email);
92
93 $avatar_url = get_user_meta($user_id, 'pp_profile_avatar', true);
94
95 if ( ! empty($avatar_url) && is_string($avatar_url)) {
96
97 return PPRESS_AVATAR_UPLOAD_URL . "$avatar_url";
98 }
99
100 /** WP User Avatar Adapter STARTS */
101 global $wpdb, $blog_id;
102
103 $attachment_id = get_the_author_meta($wpdb->get_blog_prefix($blog_id) . 'user_avatar', $user_id);
104
105 if ( ! empty($attachment_id) && wp_attachment_is_image($attachment_id)) {
106
107 if ( ! empty($size)) {
108
109 $size = is_numeric($size) ? [$size, $size] : $size;
110
111 return ppress_var(wp_get_attachment_image_src($attachment_id, $size), 0);
112 }
113
114 return wp_get_attachment_url($attachment_id);
115 }
116
117 /** WP User Avatar Adapter ENDS */
118
119 return false;
120 }
121
122 /**
123 * HTML image for the user profile
124 *
125 * @param $id_or_email
126 * @param string $size
127 * @param string $alt
128 * @param string $class
129 * @param string $css_id
130 *
131 * @return mixed
132 */
133 public static function get_avatar_img($id_or_email, $size = '96', $alt = '', $class = '', $css_id = '')
134 {
135 $alt = esc_attr($alt);
136
137 if ( ! is_numeric($size)) $size = '96';
138
139 if ( ! empty($css_id)) $css_id = " id='$css_id'";
140
141 $size = absint($size);
142
143 $avatar_url = get_avatar_url($id_or_email, ['size' => $size]);
144
145 return "<img data-del=\"avatar\" alt='{$alt}' src='{$avatar_url}' class='avatar pp-user-avatar avatar-{$size} photo {$class}' height='{$size}' width='{$size}'$css_id/>";
146 }
147
148 /**
149 * Culled from get_avatar_data()
150 *
151 * @param mixed $id_or_email
152 *
153 * @return bool|int
154 */
155 public static function get_avatar_user_id($id_or_email)
156 {
157 if (is_object($id_or_email) && isset($id_or_email->comment_ID)) {
158
159 $email = get_comment($id_or_email)->comment_author_email;
160
161 return ppress_var_obj(get_user_by('email', $email), 'ID');
162 }
163
164 if (is_numeric($id_or_email)) {
165 return ppress_var_obj(get_user_by('id', absint($id_or_email)), 'ID');
166 }
167
168 if (is_string($id_or_email)) {
169
170 if ( ! strpos($id_or_email, '@md5.gravatar.com')) {
171 // email address
172 return ppress_var_obj(get_user_by('email', $id_or_email), 'ID');
173 }
174 }
175
176 if ($id_or_email instanceof \WP_User) {
177 return $id_or_email->ID;
178 }
179
180 if ($id_or_email instanceof \WP_Post) {
181 return get_user_by('id', (int)$id_or_email->post_author)->ID;
182 }
183
184 if ($id_or_email instanceof \WP_Comment) {
185
186 if ( ! is_avatar_comment_type(get_comment_type($id_or_email))) return false;
187
188 if ( ! empty($id_or_email->user_id)) return $id_or_email->user_id;
189
190 if ( ! empty($id_or_email->comment_author_email)) {
191 return get_user_by('email', $id_or_email->comment_author_email)->ID;
192 }
193 }
194
195 return false;
196 }
197
198 public static function get_instance()
199 {
200 static $instance = null;
201
202 if (is_null($instance)) {
203 $instance = new self();
204 }
205
206 return $instance;
207 }
208 }