Version Description
Download this release
Release Info
Developer | ultimatemember |
Plugin | Ultimate Member – User Profile & Membership Plugin |
Version | 1.0.44 |
Comparing to | |
See all releases |
Code changes from version 1.0.43 to 1.0.44
- admin/assets/css/um-admin-dashboard.css +25 -54
- admin/assets/css/um-admin-misc.css +2 -2
- admin/core/um-admin-enqueue.php +25 -30
- admin/templates/dashboard.php +7 -21
- core/um-actions-user.php +19 -2
- core/um-files.php +3 -8
- core/um-short-functions.php +326 -177
- core/um-user.php +3 -2
- index.php +1 -1
- readme.txt +9 -1
admin/assets/css/um-admin-dashboard.css
CHANGED
@@ -81,55 +81,6 @@
|
|
81 |
padding-left: 4px;
|
82 |
}
|
83 |
|
84 |
-
/*
|
85 |
-
- Nav
|
86 |
-
*/
|
87 |
-
|
88 |
-
.um-admin-dash-nav {
|
89 |
-
float: left;
|
90 |
-
width: 202px;
|
91 |
-
min-height: 300px;
|
92 |
-
display: none !important;
|
93 |
-
}
|
94 |
-
|
95 |
-
.um-admin-dash-nav a {
|
96 |
-
font-family: Open Sans;
|
97 |
-
font-size: 14px;
|
98 |
-
position: relative;
|
99 |
-
display: block;
|
100 |
-
padding: 10px 4px 10px 14px;
|
101 |
-
border-width: 1px 0px;
|
102 |
-
border-style: solid;
|
103 |
-
border-bottom: 1px solid #E7E7E7;
|
104 |
-
border-top: 0px none;
|
105 |
-
font-weight: 700;
|
106 |
-
text-decoration: none;
|
107 |
-
transition: none 0s ease 0s;
|
108 |
-
background: transparent !important;
|
109 |
-
color: #555 !important;
|
110 |
-
}
|
111 |
-
|
112 |
-
.um-admin-dash-nav-title {
|
113 |
-
padding-left: 30px;
|
114 |
-
}
|
115 |
-
|
116 |
-
.um-admin-dash-nav a:hover {
|
117 |
-
background: #ddd !important;
|
118 |
-
}
|
119 |
-
|
120 |
-
.um-admin-dash-nav a.active,
|
121 |
-
.um-admin-dash-nav a.active:hover {
|
122 |
-
color: #3ba1da !important;
|
123 |
-
background: transparent !important;
|
124 |
-
}
|
125 |
-
|
126 |
-
.um-admin-dash-nav a i {
|
127 |
-
vertical-align: middle;
|
128 |
-
font-size: 1.35em;
|
129 |
-
position: absolute;
|
130 |
-
top: 8px;
|
131 |
-
}
|
132 |
-
|
133 |
/*
|
134 |
- Main
|
135 |
*/
|
@@ -139,8 +90,6 @@
|
|
139 |
border-left: 1px solid #D8D8D8;
|
140 |
padding: 0 30px 30px 30px;
|
141 |
box-shadow: 0px 1px 0px #FFF inset;
|
142 |
-
min-height: 300px;
|
143 |
-
|
144 |
border-left: none;
|
145 |
margin-left: 0;
|
146 |
}
|
@@ -151,9 +100,10 @@
|
|
151 |
margin: 0 !important;
|
152 |
}
|
153 |
|
154 |
-
.um-admin-dash-
|
155 |
-
|
156 |
-
|
|
|
157 |
}
|
158 |
|
159 |
.um-admin-dash-review {
|
@@ -187,6 +137,20 @@
|
|
187 |
- Dashboard styles
|
188 |
*/
|
189 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
.um-admin-dash-two-col .um-admin-dash-col {
|
191 |
display: inline-block;
|
192 |
width: 46%;
|
@@ -197,6 +161,13 @@
|
|
197 |
.um-admin-dash-col a:hover {text-decoration: underline}
|
198 |
.um-admin-dash-col a {text-decoration: none}
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
.um-admin-dash-item {
|
201 |
padding: 5px 0;
|
202 |
vertical-align: middle;
|
81 |
padding-left: 4px;
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
/*
|
85 |
- Main
|
86 |
*/
|
90 |
border-left: 1px solid #D8D8D8;
|
91 |
padding: 0 30px 30px 30px;
|
92 |
box-shadow: 0px 1px 0px #FFF inset;
|
|
|
|
|
93 |
border-left: none;
|
94 |
margin-left: 0;
|
95 |
}
|
100 |
margin: 0 !important;
|
101 |
}
|
102 |
|
103 |
+
.um-admin-dash-main h4{
|
104 |
+
font-weight: 500;
|
105 |
+
padding: 30px 0 10px 0;
|
106 |
+
margin: 0 !important;
|
107 |
}
|
108 |
|
109 |
.um-admin-dash-review {
|
137 |
- Dashboard styles
|
138 |
*/
|
139 |
|
140 |
+
.um-admin-dash-four-col .um-admin-dash-col {
|
141 |
+
float: left;
|
142 |
+
width: 25%;
|
143 |
+
text-align: center;
|
144 |
+
}
|
145 |
+
|
146 |
+
.um-admin-dash-three-col {border-bottom: 1px solid #ddd;padding-bottom: 25px}
|
147 |
+
|
148 |
+
.um-admin-dash-three-col .um-admin-dash-col {
|
149 |
+
float: left;
|
150 |
+
width: 33%;
|
151 |
+
text-align: center;
|
152 |
+
}
|
153 |
+
|
154 |
.um-admin-dash-two-col .um-admin-dash-col {
|
155 |
display: inline-block;
|
156 |
width: 46%;
|
161 |
.um-admin-dash-col a:hover {text-decoration: underline}
|
162 |
.um-admin-dash-col a {text-decoration: none}
|
163 |
|
164 |
+
.um-admin-dash-num {
|
165 |
+
display: inline-block;
|
166 |
+
margin: 8px 0 0 0;
|
167 |
+
font-size: 28px;
|
168 |
+
font-weight: 300;
|
169 |
+
}
|
170 |
+
|
171 |
.um-admin-dash-item {
|
172 |
padding: 5px 0;
|
173 |
vertical-align: middle;
|
admin/assets/css/um-admin-misc.css
CHANGED
@@ -95,13 +95,13 @@ body.um-admin-modal-open {
|
|
95 |
|
96 |
.um-admin a.button-primary,
|
97 |
.um-admin input.button-primary {
|
98 |
-
background: #3ba1da
|
99 |
box-shadow: none !important;
|
100 |
border-radius: 2px;
|
101 |
color: #fff;
|
102 |
}
|
103 |
.um-admin a.button-primary:hover,
|
104 |
-
.um-admin input.button-primary:hover {background: #44b0ec
|
105 |
|
106 |
/*
|
107 |
- Form Inputs
|
95 |
|
96 |
.um-admin a.button-primary,
|
97 |
.um-admin input.button-primary {
|
98 |
+
background: #3ba1da;
|
99 |
box-shadow: none !important;
|
100 |
border-radius: 2px;
|
101 |
color: #fff;
|
102 |
}
|
103 |
.um-admin a.button-primary:hover,
|
104 |
+
.um-admin input.button-primary:hover {background: #44b0ec;}
|
105 |
|
106 |
/*
|
107 |
- Form Inputs
|
admin/core/um-admin-enqueue.php
CHANGED
@@ -232,9 +232,7 @@ class UM_Admin_Enqueue {
|
|
232 |
if ( strstr( $screen_id, 'ultimatemember') || strstr( $screen_id, 'um_') || strstr($screen_id, 'user') || strstr($screen_id, 'profile') )return true;
|
233 |
|
234 |
if ( $screen_id == 'nav-menus' ) return true;
|
235 |
-
|
236 |
-
if ( isset( $post->post_type ) ) return true;
|
237 |
-
|
238 |
return false;
|
239 |
|
240 |
}
|
@@ -252,36 +250,33 @@ class UM_Admin_Enqueue {
|
|
252 |
*** @Enqueue scripts and styles
|
253 |
***/
|
254 |
function admin_enqueue_scripts(){
|
255 |
-
global $ultimatemember;
|
256 |
|
257 |
if ( $this->is_UM_admin() ) {
|
258 |
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
$this->load_custom_scripts();
|
284 |
-
|
285 |
}
|
286 |
|
287 |
}
|
232 |
if ( strstr( $screen_id, 'ultimatemember') || strstr( $screen_id, 'um_') || strstr($screen_id, 'user') || strstr($screen_id, 'profile') )return true;
|
233 |
|
234 |
if ( $screen_id == 'nav-menus' ) return true;
|
235 |
+
|
|
|
|
|
236 |
return false;
|
237 |
|
238 |
}
|
250 |
*** @Enqueue scripts and styles
|
251 |
***/
|
252 |
function admin_enqueue_scripts(){
|
253 |
+
global $ultimatemember, $post;
|
254 |
|
255 |
if ( $this->is_UM_admin() ) {
|
256 |
|
257 |
+
$ultimatemember->styles->wp_enqueue_scripts();
|
258 |
+
|
259 |
+
$this->load_global_css();
|
260 |
+
$this->load_form();
|
261 |
+
$this->load_modal();
|
262 |
+
$this->load_dashboard();
|
263 |
+
$this->load_field();
|
264 |
+
$this->load_users_js();
|
265 |
+
$this->load_builder();
|
266 |
+
$this->load_redux_css();
|
267 |
+
$this->load_css();
|
268 |
+
$this->load_core_wp();
|
269 |
+
$this->load_ajax_js();
|
270 |
+
$this->load_custom_scripts();
|
271 |
+
|
272 |
+
} else if ( isset( $post->post_type ) ) {
|
273 |
+
|
274 |
+
$ultimatemember->styles->wp_enqueue_scripts();
|
275 |
+
|
276 |
+
$this->load_global_css();
|
277 |
+
$this->load_css();
|
278 |
+
$this->load_custom_scripts();
|
279 |
+
|
|
|
|
|
|
|
280 |
}
|
281 |
|
282 |
}
|
admin/templates/dashboard.php
CHANGED
@@ -7,35 +7,21 @@
|
|
7 |
<div class="um-admin-dash-head-logo">
|
8 |
<h2>Dashboard</h2>
|
9 |
<span><?php echo ultimatemember_version; ?></span>
|
10 |
-
</div>
|
11 |
-
|
12 |
-
<div class="um-admin-clear"></div>
|
13 |
-
|
14 |
</div>
|
15 |
|
16 |
<div class="um-admin-dash-body">
|
17 |
-
|
18 |
-
<div class="um-admin-dash-nav">
|
19 |
-
|
20 |
-
<a href="#" class="active" data-rel="overview"><span class="um-admin-dash-nav-title">Dashboard Overview</span></a>
|
21 |
-
|
22 |
-
</div>
|
23 |
-
|
24 |
<div class="um-admin-dash-main">
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
<?php foreach( $tabs as $tab ) { ?>
|
29 |
-
<div class="um-admin-dash-content" id="<?php echo $tab; ?>">
|
30 |
|
31 |
-
<?php include_once um_path . 'admin/templates/dashboard/
|
32 |
-
|
33 |
</div>
|
34 |
-
<?php } ?>
|
35 |
|
36 |
-
</div>
|
37 |
-
|
38 |
-
<div class="um-admin-clear"></div>
|
39 |
|
40 |
</div>
|
41 |
|
7 |
<div class="um-admin-dash-head-logo">
|
8 |
<h2>Dashboard</h2>
|
9 |
<span><?php echo ultimatemember_version; ?></span>
|
10 |
+
</div><div class="um-admin-clear"></div>
|
11 |
+
|
|
|
|
|
12 |
</div>
|
13 |
|
14 |
<div class="um-admin-dash-body">
|
15 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
<div class="um-admin-dash-main">
|
17 |
|
18 |
+
<div class="um-admin-dash-content">
|
|
|
|
|
|
|
19 |
|
20 |
+
<?php include_once um_path . 'admin/templates/dashboard/overview.php'; ?>
|
21 |
+
|
22 |
</div>
|
|
|
23 |
|
24 |
+
</div><div class="um-admin-clear"></div>
|
|
|
|
|
25 |
|
26 |
</div>
|
27 |
|
core/um-actions-user.php
CHANGED
@@ -1,8 +1,26 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
/***
|
4 |
*** @listen to a new user creation in backend
|
5 |
***/
|
|
|
6 |
function um_new_user_via_wpadmin( $user_id ) {
|
7 |
|
8 |
if ( is_admin() ) {
|
@@ -21,5 +39,4 @@
|
|
21 |
|
22 |
}
|
23 |
|
24 |
-
}
|
25 |
-
add_action( 'user_register', 'um_new_user_via_wpadmin', 10, 1 );
|
1 |
<?php
|
2 |
|
3 |
+
/***
|
4 |
+
*** @after user uploads, clean up uploads dir
|
5 |
+
***/
|
6 |
+
add_action('um_after_user_upload','um_remove_unused_uploads', 10);
|
7 |
+
function um_remove_unused_uploads( $user_id ) {
|
8 |
+
global $ultimatemember;
|
9 |
+
um_fetch_user( $user_id );
|
10 |
+
$array = $ultimatemember->user->profile;
|
11 |
+
$files = glob( um_user_uploads_dir() . '*', GLOB_BRACE);
|
12 |
+
foreach($files as $file) {
|
13 |
+
$str = basename($file);
|
14 |
+
if ( !strstr( $str, 'profile_photo') && !strstr( $str, 'cover_photo') && !preg_grep('/' . $str . '/', $array ) )
|
15 |
+
unlink( $file );
|
16 |
+
}
|
17 |
+
um_reset_user();
|
18 |
+
}
|
19 |
+
|
20 |
/***
|
21 |
*** @listen to a new user creation in backend
|
22 |
***/
|
23 |
+
add_action( 'user_register', 'um_new_user_via_wpadmin', 10, 1 );
|
24 |
function um_new_user_via_wpadmin( $user_id ) {
|
25 |
|
26 |
if ( is_admin() ) {
|
39 |
|
40 |
}
|
41 |
|
42 |
+
}
|
|
core/um-files.php
CHANGED
@@ -502,15 +502,10 @@ class UM_Files {
|
|
502 |
rmdir( $dir );
|
503 |
|
504 |
// update user's meta
|
505 |
-
$existing = get_user_meta( $user_id, $key, true );
|
506 |
-
if ( $existing ) {
|
507 |
-
$file = basename( $existing );
|
508 |
-
if ( $file != $filename ) {
|
509 |
-
$delete_src = $this->upload_basedir . $user_id . '/' . basename( $existing );
|
510 |
-
unlink( $delete_src );
|
511 |
-
}
|
512 |
-
}
|
513 |
update_user_meta( $user_id, $key, $filename );
|
|
|
|
|
|
|
514 |
|
515 |
// the url of upload
|
516 |
return $this->upload_baseurl . $user_id . '/' . $filename;
|
502 |
rmdir( $dir );
|
503 |
|
504 |
// update user's meta
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
update_user_meta( $user_id, $key, $filename );
|
506 |
+
|
507 |
+
// this action is executed after upload
|
508 |
+
do_action('um_after_user_upload', $user_id );
|
509 |
|
510 |
// the url of upload
|
511 |
return $this->upload_baseurl . $user_id . '/' . $filename;
|
core/um-short-functions.php
CHANGED
@@ -1,17 +1,34 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
}
|
|
|
|
|
15 |
|
16 |
/***
|
17 |
*** @If conditions are met return true;
|
@@ -144,19 +161,40 @@
|
|
144 |
return $value;
|
145 |
}
|
146 |
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
return get_current_user_id();
|
156 |
}
|
157 |
|
158 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
}
|
|
|
|
|
|
|
160 |
|
161 |
/***
|
162 |
*** @Check that temp upload is valid
|
@@ -346,21 +384,49 @@
|
|
346 |
return $ultimatemember->members->results[ $argument ];
|
347 |
}
|
348 |
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
|
365 |
/***
|
366 |
*** @gets the queried user
|
@@ -479,7 +545,10 @@
|
|
479 |
***/
|
480 |
function um_can_edit_field( $data ) {
|
481 |
global $ultimatemember;
|
482 |
-
|
|
|
|
|
|
|
483 |
if ( is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0 ) {
|
484 |
|
485 |
if ( um_is_user_himself() && !um_user('can_edit_everyone') )
|
@@ -489,8 +558,11 @@
|
|
489 |
return false;
|
490 |
|
491 |
}
|
|
|
492 |
}
|
|
|
493 |
return true;
|
|
|
494 |
}
|
495 |
|
496 |
/***
|
@@ -567,29 +639,49 @@
|
|
567 |
return um_get_option('admin_email');
|
568 |
}
|
569 |
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
579 |
|
580 |
-
|
581 |
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
|
590 |
-
}
|
591 |
-
|
592 |
}
|
|
|
|
|
593 |
|
594 |
/***
|
595 |
*** @Display a link to profile page
|
@@ -607,13 +699,42 @@
|
|
607 |
return $ultimatemember->query->get_roles();
|
608 |
}
|
609 |
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
617 |
|
618 |
/***
|
619 |
*** @Load profile key
|
@@ -724,164 +845,192 @@
|
|
724 |
return '';
|
725 |
}
|
726 |
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
|
733 |
-
|
734 |
|
735 |
-
|
736 |
|
737 |
-
|
738 |
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
return $value;
|
744 |
|
745 |
-
|
|
|
746 |
|
747 |
-
|
748 |
-
|
|
|
749 |
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
|
756 |
-
|
757 |
-
|
758 |
|
759 |
-
|
760 |
|
761 |
-
|
762 |
|
763 |
-
|
764 |
|
765 |
-
|
766 |
-
|
767 |
|
768 |
-
|
769 |
|
770 |
-
|
771 |
-
|
772 |
-
if ( $op == 'full_name' ) {
|
773 |
-
if ( um_user('first_name') && um_user('last_name') ) {
|
774 |
-
return um_user('first_name') . ' ' . um_user('last_name');
|
775 |
-
} else {
|
776 |
-
return um_profile( $data );
|
777 |
-
}
|
778 |
-
}
|
779 |
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
}
|
786 |
}
|
|
|
787 |
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
}
|
794 |
}
|
|
|
795 |
|
796 |
-
|
797 |
-
|
|
|
|
|
|
|
798 |
}
|
|
|
799 |
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
return um_user('first_name') . ' ' . $initial[0];
|
804 |
-
} else {
|
805 |
-
return um_profile( $data );
|
806 |
-
}
|
807 |
-
}
|
808 |
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
}
|
816 |
}
|
|
|
817 |
|
818 |
-
|
|
|
|
|
|
|
|
|
819 |
return um_profile( $data );
|
820 |
}
|
|
|
821 |
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
|
|
|
|
829 |
}
|
|
|
|
|
830 |
|
831 |
-
|
832 |
|
833 |
-
|
834 |
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
|
855 |
-
|
856 |
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
|
863 |
-
|
864 |
-
|
865 |
|
866 |
-
|
867 |
-
|
868 |
|
869 |
-
|
870 |
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
if ( $cover_uri )
|
879 |
-
return '<img src="'. $cover_uri .'" alt="" />';
|
880 |
|
881 |
-
|
882 |
-
|
883 |
|
884 |
-
|
|
|
885 |
|
886 |
-
|
887 |
-
|
|
|
|
|
|
1 |
<?php
|
2 |
|
3 |
+
/**
|
4 |
+
* @function um_user_ip()
|
5 |
+
*
|
6 |
+
* @description This function returns the IP address of user.
|
7 |
+
*
|
8 |
+
* @usage <?php $user_ip = um_user_ip(); ?>
|
9 |
+
*
|
10 |
+
* @returns Returns the user's IP address.
|
11 |
+
*
|
12 |
+
* @example The example below can retrieve the user's IP address
|
13 |
|
14 |
+
<?php
|
15 |
+
|
16 |
+
$user_ip = um_user_ip();
|
17 |
+
echo 'User IP address is: ' . $user_ip; // prints the user IP address e.g. 127.0.0.1
|
18 |
+
|
19 |
+
?>
|
20 |
+
|
21 |
+
*
|
22 |
+
*
|
23 |
+
*/
|
24 |
+
function um_user_ip() {
|
25 |
+
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
26 |
+
return $_SERVER['HTTP_CLIENT_IP'];
|
27 |
+
} else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
28 |
+
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
29 |
}
|
30 |
+
return $_SERVER['REMOTE_ADDR'];
|
31 |
+
}
|
32 |
|
33 |
/***
|
34 |
*** @If conditions are met return true;
|
161 |
return $value;
|
162 |
}
|
163 |
|
164 |
+
/**
|
165 |
+
* @function um_profile_id()
|
166 |
+
*
|
167 |
+
* @description This function returns the user ID for current profile.
|
168 |
+
*
|
169 |
+
* @usage <?php $user_id = um_profile_id(); ?>
|
170 |
+
*
|
171 |
+
* @returns Returns the user ID of profile if found, or current user ID if user is logged in. Also returns blank
|
172 |
+
if no user ID is set.
|
173 |
+
*
|
174 |
+
* @example The example below will retrieve the user ID when viewing someone profile.
|
175 |
+
|
176 |
+
<?php
|
177 |
|
178 |
+
$user_id = um_profile_id();
|
179 |
+
if ( $user_id == 1 ) {
|
180 |
+
echo 'This is administrator profile.';
|
|
|
181 |
}
|
182 |
|
183 |
+
?>
|
184 |
+
|
185 |
+
*
|
186 |
+
*
|
187 |
+
*/
|
188 |
+
function um_profile_id() {
|
189 |
+
|
190 |
+
if ( um_get_requested_user() ) {
|
191 |
+
return um_get_requested_user();
|
192 |
+
} else if ( is_user_logged_in() && get_current_user_id() ) {
|
193 |
+
return get_current_user_id();
|
194 |
}
|
195 |
+
|
196 |
+
return 0;
|
197 |
+
}
|
198 |
|
199 |
/***
|
200 |
*** @Check that temp upload is valid
|
384 |
return $ultimatemember->members->results[ $argument ];
|
385 |
}
|
386 |
|
387 |
+
/**
|
388 |
+
* @function um_reset_user_clean()
|
389 |
+
*
|
390 |
+
* @description This function is similar to um_reset_user() with a difference that it will not use the logged-in user
|
391 |
+
data after resetting. It is a hard-reset function for all user data.
|
392 |
+
*
|
393 |
+
* @usage <?php um_reset_user_clean(); ?>
|
394 |
+
*
|
395 |
+
* @returns Clears the user data. You need to fetch a user manually after using this function.
|
396 |
+
*
|
397 |
+
* @example You can reset user data by using the following line in your code
|
398 |
+
|
399 |
+
<?php um_reset_user_clean(); ?>
|
400 |
+
|
401 |
+
*
|
402 |
+
*
|
403 |
+
*/
|
404 |
+
function um_reset_user_clean() {
|
405 |
+
global $ultimatemember;
|
406 |
+
$ultimatemember->user->reset( true );
|
407 |
+
}
|
408 |
|
409 |
+
/**
|
410 |
+
* @function um_reset_user()
|
411 |
+
*
|
412 |
+
* @description This function resets the current user. You can use it to reset user data after
|
413 |
+
retrieving the details of a specific user.
|
414 |
+
*
|
415 |
+
* @usage <?php um_reset_user(); ?>
|
416 |
+
*
|
417 |
+
* @returns Clears the user data. If a user is logged in, the user data will be reset to that user's data
|
418 |
+
*
|
419 |
+
* @example You can reset user data by using the following line in your code
|
420 |
+
|
421 |
+
<?php um_reset_user(); ?>
|
422 |
+
|
423 |
+
*
|
424 |
+
*
|
425 |
+
*/
|
426 |
+
function um_reset_user() {
|
427 |
+
global $ultimatemember;
|
428 |
+
$ultimatemember->user->reset();
|
429 |
+
}
|
430 |
|
431 |
/***
|
432 |
*** @gets the queried user
|
545 |
***/
|
546 |
function um_can_edit_field( $data ) {
|
547 |
global $ultimatemember;
|
548 |
+
|
549 |
+
if ( isset( $ultimatemember->fields->editing ) && $ultimatemember->fields->editing == true &&
|
550 |
+
isset( $ultimatemember->fields->set_mode ) && $ultimatemember->fields->set_mode == 'profile' ) {
|
551 |
+
|
552 |
if ( is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0 ) {
|
553 |
|
554 |
if ( um_is_user_himself() && !um_user('can_edit_everyone') )
|
558 |
return false;
|
559 |
|
560 |
}
|
561 |
+
|
562 |
}
|
563 |
+
|
564 |
return true;
|
565 |
+
|
566 |
}
|
567 |
|
568 |
/***
|
639 |
return um_get_option('admin_email');
|
640 |
}
|
641 |
|
642 |
+
/**
|
643 |
+
* @function um_get_option()
|
644 |
+
*
|
645 |
+
* @description This function returns the value of an option or setting.
|
646 |
+
*
|
647 |
+
* @usage <?php $value = um_get_option( $setting ); ?>
|
648 |
+
*
|
649 |
+
* @param $option_id (string) (required) The option or setting that you want to retrieve
|
650 |
+
*
|
651 |
+
* @returns Returns the value of the setting you requested, or a blank value if the setting
|
652 |
+
does not exist.
|
653 |
+
*
|
654 |
+
* @example Get default user role set in global options
|
655 |
+
|
656 |
+
<?php $default_role = um_get_option('default_role'); ?>
|
657 |
+
|
658 |
+
*
|
659 |
+
* @example Get blocked IP addresses set in backend
|
660 |
+
|
661 |
+
<?php $blocked_ips = um_get_option('blocked_ips'); ?>
|
662 |
+
|
663 |
+
*
|
664 |
+
*/
|
665 |
+
function um_get_option($option_id) {
|
666 |
+
global $ultimatemember;
|
667 |
+
$um_options = $ultimatemember->options;
|
668 |
+
if ( isset($um_options[$option_id]) && !empty( $um_options[$option_id] ) ) {
|
669 |
+
return $um_options[$option_id];
|
670 |
+
}
|
671 |
|
672 |
+
switch($option_id){
|
673 |
|
674 |
+
case 'site_name':
|
675 |
+
return get_bloginfo('name');
|
676 |
+
break;
|
677 |
|
678 |
+
case 'admin_email':
|
679 |
+
return get_bloginfo('admin_email');
|
680 |
+
break;
|
681 |
|
|
|
|
|
682 |
}
|
683 |
+
|
684 |
+
}
|
685 |
|
686 |
/***
|
687 |
*** @Display a link to profile page
|
699 |
return $ultimatemember->query->get_roles();
|
700 |
}
|
701 |
|
702 |
+
/**
|
703 |
+
* @function um_fetch_user()
|
704 |
+
*
|
705 |
+
* @description This function sets a user and allow you to retrieve any information for the retrieved user
|
706 |
+
*
|
707 |
+
* @usage <?php um_fetch_user( $user_id ); ?>
|
708 |
+
*
|
709 |
+
* @param $user_id (numeric) (required) A user ID is required. This is the user's ID that you wish to set/retrieve
|
710 |
+
*
|
711 |
+
* @returns Sets a specific user and prepares profile data and user permissions and makes them accessible.
|
712 |
+
*
|
713 |
+
* @example The example below will set user ID 5 prior to retrieving his profile information.
|
714 |
+
|
715 |
+
<?php
|
716 |
+
|
717 |
+
um_fetch_user(5);
|
718 |
+
echo um_user('display_name'); // returns the display name of user ID 5
|
719 |
+
|
720 |
+
?>
|
721 |
+
|
722 |
+
*
|
723 |
+
* @example In the following example you can fetch the profile of a logged-in user dynamically.
|
724 |
+
|
725 |
+
<?php
|
726 |
+
|
727 |
+
um_fetch_user( get_current_user_id() );
|
728 |
+
echo um_user('display_name'); // returns the display name of logged-in user
|
729 |
+
|
730 |
+
?>
|
731 |
+
|
732 |
+
*
|
733 |
+
*/
|
734 |
+
function um_fetch_user( $user_id ) {
|
735 |
+
global $ultimatemember;
|
736 |
+
$ultimatemember->user->set( $user_id );
|
737 |
+
}
|
738 |
|
739 |
/***
|
740 |
*** @Load profile key
|
845 |
return '';
|
846 |
}
|
847 |
|
848 |
+
/**
|
849 |
+
* @function um_user()
|
850 |
+
*
|
851 |
+
* @description This function can be used to get user's data. This can be user profile data or user permissions.
|
852 |
+
*
|
853 |
+
* @usage <?php echo um_user( $data ); ?>
|
854 |
+
*
|
855 |
+
* @param $data (string) (required) The field or data you want to retrieve for user.
|
856 |
+
* @param $attrs (string) (optional) Additional attribute for profile data that may need extra configuration.
|
857 |
+
*
|
858 |
+
* @returns Returns the user data requested If found. A user must be previously set using um_fetch_user() to
|
859 |
+
properly retrieve user data.
|
860 |
+
*
|
861 |
+
* @example The example below can retrieve the user's display name
|
862 |
+
|
863 |
+
<?php
|
864 |
+
|
865 |
+
$display_name = um_user('display_name');
|
866 |
+
echo $display_name; // prints the user's display name
|
867 |
+
|
868 |
+
?>
|
869 |
+
|
870 |
+
*
|
871 |
+
* @example The example below can retrieve user's community role
|
872 |
+
|
873 |
+
<?php echo um_user('role_name'); // example: Member or Admin ?>
|
874 |
+
|
875 |
+
*
|
876 |
+
*/
|
877 |
+
function um_user( $data, $attrs = null ) {
|
878 |
+
|
879 |
+
global $ultimatemember;
|
880 |
|
881 |
+
switch($data){
|
882 |
|
883 |
+
default:
|
884 |
|
885 |
+
$value = um_profile($data);
|
886 |
|
887 |
+
if ( $ultimatemember->validation->is_serialized( $value ) ) {
|
888 |
+
$value = unserialize( $value );
|
889 |
+
}
|
|
|
|
|
890 |
|
891 |
+
return $value;
|
892 |
+
break;
|
893 |
|
894 |
+
case 'full_name':
|
895 |
+
|
896 |
+
if ( !um_profile( $data ) ) {
|
897 |
|
898 |
+
if ( um_user('first_name') && um_user('last_name') ) {
|
899 |
+
$full_name = um_user('first_name') . '.' . um_user('last_name');
|
900 |
+
} else {
|
901 |
+
$full_name = um_user('display_name');
|
902 |
+
}
|
903 |
|
904 |
+
$full_name = $ultimatemember->validation->safe_name_in_url( $full_name );
|
905 |
+
update_user_meta( um_user('ID'), 'full_name', $full_name );
|
906 |
|
907 |
+
return $full_name;
|
908 |
|
909 |
+
} else {
|
910 |
|
911 |
+
return um_profile( $data );
|
912 |
|
913 |
+
}
|
914 |
+
break;
|
915 |
|
916 |
+
case 'display_name':
|
917 |
|
918 |
+
$op = um_get_option('display_name');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
919 |
|
920 |
+
if ( $op == 'full_name' ) {
|
921 |
+
if ( um_user('first_name') && um_user('last_name') ) {
|
922 |
+
return um_user('first_name') . ' ' . um_user('last_name');
|
923 |
+
} else {
|
924 |
+
return um_profile( $data );
|
|
|
925 |
}
|
926 |
+
}
|
927 |
|
928 |
+
if ( $op == 'sur_name' ) {
|
929 |
+
if ( um_user('first_name') && um_user('last_name') ) {
|
930 |
+
return um_user('last_name') . ', ' . um_user('first_name');
|
931 |
+
} else {
|
932 |
+
return um_profile( $data );
|
|
|
933 |
}
|
934 |
+
}
|
935 |
|
936 |
+
if ( $op == 'first_name' ) {
|
937 |
+
if ( um_user('first_name') ) {
|
938 |
+
return um_user('first_name');
|
939 |
+
} else {
|
940 |
+
return um_profile( $data );
|
941 |
}
|
942 |
+
}
|
943 |
|
944 |
+
if ( $op == 'username' ) {
|
945 |
+
return um_user('user_login');
|
946 |
+
}
|
|
|
|
|
|
|
|
|
|
|
947 |
|
948 |
+
if ( $op == 'initial_name' ) {
|
949 |
+
if ( um_user('first_name') && um_user('last_name') ) {
|
950 |
+
$initial = um_user('last_name');
|
951 |
+
return um_user('first_name') . ' ' . $initial[0];
|
952 |
+
} else {
|
953 |
+
return um_profile( $data );
|
|
|
954 |
}
|
955 |
+
}
|
956 |
|
957 |
+
if ( $op == 'initial_name_f' ) {
|
958 |
+
if ( um_user('first_name') && um_user('last_name') ) {
|
959 |
+
$initial = um_user('first_name');
|
960 |
+
return $initial[0] . ' ' . um_user('last_name');
|
961 |
+
} else {
|
962 |
return um_profile( $data );
|
963 |
}
|
964 |
+
}
|
965 |
|
966 |
+
if ( $op == 'public_name' ) {
|
967 |
+
return um_profile( $data );
|
968 |
+
}
|
969 |
+
|
970 |
+
if ( $op == 'field' && um_get_option('display_name_field') != '' ) {
|
971 |
+
$fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') ));
|
972 |
+
$output = '';
|
973 |
+
foreach( $fields as $field ) {
|
974 |
+
$output .= um_profile( $field ) . ' ';
|
975 |
}
|
976 |
+
return $output;
|
977 |
+
}
|
978 |
|
979 |
+
return um_profile( $data );
|
980 |
|
981 |
+
break;
|
982 |
|
983 |
+
case 'role_select':
|
984 |
+
case 'role_radio':
|
985 |
+
return um_user('role_name');
|
986 |
+
break;
|
987 |
|
988 |
+
case 'submitted':
|
989 |
+
$array = um_profile($data);
|
990 |
+
if ( empty( $array ) ) return '';
|
991 |
+
$array = unserialize( $array );
|
992 |
+
return $array;
|
993 |
+
break;
|
994 |
|
995 |
+
case 'password_reset_link':
|
996 |
+
return $ultimatemember->password->reset_url();
|
997 |
+
break;
|
998 |
|
999 |
+
case 'account_activation_link':
|
1000 |
+
return $ultimatemember->permalinks->activate_url();
|
1001 |
+
break;
|
1002 |
|
1003 |
+
case 'profile_photo':
|
1004 |
|
1005 |
+
if ( um_profile('profile_photo') ) {
|
1006 |
+
$avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs );
|
1007 |
+
} else {
|
1008 |
+
$avatar_uri = um_get_default_avatar_uri();
|
1009 |
+
}
|
1010 |
|
1011 |
+
if ( $avatar_uri )
|
1012 |
+
return '<img src="' . $avatar_uri . '" class="gravatar avatar avatar-'.$attrs.' um-avatar" width="'.$attrs.'" height="'.$attrs.'" alt="" />';
|
1013 |
|
1014 |
+
if ( !$avatar_uri )
|
1015 |
+
return '';
|
1016 |
|
1017 |
+
break;
|
1018 |
|
1019 |
+
case 'cover_photo':
|
1020 |
+
if ( um_profile('cover_photo') ) {
|
1021 |
+
$cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs );
|
1022 |
+
} else {
|
1023 |
+
$cover_uri = um_get_default_cover_uri();
|
1024 |
+
}
|
|
|
|
|
|
|
1025 |
|
1026 |
+
if ( $cover_uri )
|
1027 |
+
return '<img src="'. $cover_uri .'" alt="" />';
|
1028 |
|
1029 |
+
if ( !$cover_uri )
|
1030 |
+
return '';
|
1031 |
|
1032 |
+
break;
|
1033 |
+
|
1034 |
+
}
|
1035 |
+
|
1036 |
+
}
|
core/um-user.php
CHANGED
@@ -26,10 +26,11 @@ class UM_User {
|
|
26 |
'user_email',
|
27 |
'user_pass',
|
28 |
'user_password',
|
|
|
29 |
);
|
30 |
|
31 |
$this->target_id = null;
|
32 |
-
|
33 |
}
|
34 |
|
35 |
/***
|
@@ -127,7 +128,7 @@ class UM_User {
|
|
127 |
foreach($this->usermeta as $k=>$v){
|
128 |
$this->profile[$k] = $v[0];
|
129 |
}
|
130 |
-
|
131 |
// add user stuff
|
132 |
$this->profile['post_count'] = $ultimatemember->query->count_posts($this->id);
|
133 |
$this->profile['comment_count'] = $ultimatemember->query->count_comments($this->id);
|
26 |
'user_email',
|
27 |
'user_pass',
|
28 |
'user_password',
|
29 |
+
'display_name',
|
30 |
);
|
31 |
|
32 |
$this->target_id = null;
|
33 |
+
|
34 |
}
|
35 |
|
36 |
/***
|
128 |
foreach($this->usermeta as $k=>$v){
|
129 |
$this->profile[$k] = $v[0];
|
130 |
}
|
131 |
+
|
132 |
// add user stuff
|
133 |
$this->profile['post_count'] = $ultimatemember->query->count_posts($this->id);
|
134 |
$this->profile['comment_count'] = $ultimatemember->query->count_comments($this->id);
|
index.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
|
6 |
-
Version: 1.0.
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
*/
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
|
6 |
+
Version: 1.0.44
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
*/
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ Tags: access control, author, authors, author profile, comments, community, comm
|
|
7 |
Requires at least: 4.1
|
8 |
Tested up to: 4.1
|
9 |
|
10 |
-
Stable Tag: 1.0.
|
11 |
|
12 |
License: GNU Version 2 or Any Later Version
|
13 |
|
@@ -185,6 +185,14 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
|
185 |
|
186 |
== Changelog ==
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
= 1.0.43: February 7, 2015 =
|
189 |
|
190 |
* New: added German (Deutsch) language support
|
7 |
Requires at least: 4.1
|
8 |
Tested up to: 4.1
|
9 |
|
10 |
+
Stable Tag: 1.0.44
|
11 |
|
12 |
License: GNU Version 2 or Any Later Version
|
13 |
|
185 |
|
186 |
== Changelog ==
|
187 |
|
188 |
+
= 1.0.44: February 8, 2015 =
|
189 |
+
|
190 |
+
* Tweak: improved performance: unused user photos are deleted when user upload
|
191 |
+
* Tweak: cleaned up dashboard code
|
192 |
+
* Tweak: updated current translations
|
193 |
+
* Fixed: display name field should be updated with wp_update_user and not in usermeta
|
194 |
+
* Fixed: admin js and css should are loaded in UM backend only
|
195 |
+
|
196 |
= 1.0.43: February 7, 2015 =
|
197 |
|
198 |
* New: added German (Deutsch) language support
|