Ultimate Member – User Profile & Membership Plugin - Version 1.0.47

Version Description

Download this release

Release Info

Developer ultimatemember
Plugin Icon 128x128 Ultimate Member – User Profile & Membership Plugin
Version 1.0.47
Comparing to
See all releases

Code changes from version 1.0.46 to 1.0.47

admin/assets/css/um-admin-dashboard.css CHANGED
@@ -1,110 +1,11 @@
1
- /*
2
- - General
3
- */
4
-
5
- .um-admin.toplevel_page_ultimatemember div.error,
6
- .um-admin.toplevel_page_ultimatemember div.updated
7
- {
8
- margin: 18px 20px 0 2px !important;
9
- }
10
-
11
- .um-admin-dash-container {
12
- box-sizing: border-box;
13
- margin: 18px 20px 20px 2px !important;
14
- background: none !important;
15
- overflow: hidden;
16
- }
17
-
18
- .um-admin-dash-container * {
19
- -webkit-font-smoothing: antialiased !important;
20
- -moz-osx-font-smoothing: grayscale !important;
21
- }
22
-
23
- .um-admin-dash-container a.ok {color: #7ACF58}
24
- .um-admin-dash-container a.red {color: #C74A4A}
25
-
26
- .um-admin-dash-count {
27
- background: #7ACF58;
28
- color: #fff;
29
- padding: 2px 6px;
30
- border-radius: 3px;
31
- font-family: Open Sans;
32
- font-weight: 700;
33
- font-size: 12px;
34
- margin-left: 10px;
35
- display: none;
36
- }
37
- .um-admin-dash-count.count-0 {background: #ddd !important}
38
- .um-admin-dash-count.red {background:#C74A4A}
39
-
40
- .um-admin-dash-head {
41
- background: #3ba1da;
42
- padding: 0 0 0 20px;
43
- }
44
-
45
- .um-admin-dash-foot {
46
- border-radius: 0;
47
- background: none !important;
48
- padding: 10px 0;
49
- border-top: 1px solid #D8D8D8;
50
- }
51
-
52
- /*
53
- - Header
54
- */
55
-
56
- .um-admin-dash-head-logo {
57
- float: left;
58
- margin: 20px 10px;
59
- }
60
-
61
- .um-admin-dash-head h2 {
62
- color: #fff;
63
- font-size: 24px !important;
64
- -webkit-font-smoothing: antialiased;
65
- -moz-osx-font-smoothing: grayscale;
66
- background: url(../img/logo-header.png) no-repeat left 8px;
67
- padding: 10px 10px 10px 80px;
68
- margin: 0 !important;
69
- display: inline-block;
70
- font-style: normal;
71
- padding-right: 5px;
72
- line-height: 29px;
73
- }
74
-
75
- .um-admin-dash-head span {
76
- color: #fff !important;
77
- font-size: 14px;
78
- position: relative;
79
- top: -10px;
80
- font-weight: 600;
81
- padding-left: 4px;
82
- }
83
-
84
- /*
85
- - Main
86
- */
87
-
88
- .um-admin-dash-main {
89
- margin-left: 201px;
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
}
96
97
- .um-admin-dash-main h3{
98
- font-weight: 500;
99
- padding: 30px 0 10px 0;
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 {
110
text-decoration: none !important;
@@ -114,9 +15,10 @@
114
right: 4px;
115
}
116
117
- /*
118
- - Share icons
119
- */
120
121
.um-admin-dash-share {
122
margin-top: 11px !important;
@@ -133,10 +35,6 @@
133
}
134
.um-admin-dash-share a:hover {color: #3ba1da !important}
135
136
- /*
137
- - Dashboard styles
138
- */
139
-
140
.um-admin-dash-four-col .um-admin-dash-col {
141
float: left;
142
width: 25%;
@@ -161,17 +59,10 @@
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;
174
- border-top: 1px solid #e5e5e5;
175
display: inline-block;
176
width: 100%;
177
box-sizing: border-box;
1
+ .wrap h2 sup {
2
+ font-size: 15px;
3
}
4
5
+ .wrap a.red,
6
+ .wrap span.red {color:#A00}
7
8
+ .wrap span.ok {color:#7ACF58}
9
10
.um-admin-dash-review {
11
text-decoration: none !important;
15
right: 4px;
16
}
17
18
+ .um-admin-dash-content h4 {
19
+ margin: 10px 0 3px 0;
20
+ padding: 0;
21
+ }
22
23
.um-admin-dash-share {
24
margin-top: 11px !important;
35
}
36
.um-admin-dash-share a:hover {color: #3ba1da !important}
37
38
.um-admin-dash-four-col .um-admin-dash-col {
39
float: left;
40
width: 25%;
59
.um-admin-dash-col a:hover {text-decoration: underline}
60
.um-admin-dash-col a {text-decoration: none}
61
62
.um-admin-dash-item {
63
padding: 5px 0;
64
vertical-align: middle;
65
+ border-top: 1px solid #eee;
66
display: inline-block;
67
width: 100%;
68
box-sizing: border-box;
admin/assets/css/um-admin-misc.css CHANGED
@@ -183,7 +183,7 @@ body.um-admin-modal-open {
183
}
184
185
.um-admin-success-block {
186
- background: #7ACE5A;
187
}
188
189
/*
183
}
184
185
.um-admin-success-block {
186
+ background: #7ACF58;
187
}
188
189
/*
admin/core/um-admin-actions.php CHANGED
@@ -1,5 +1,20 @@
1
<?php
2
3
/***
4
*** @duplicate form
5
***/
1
<?php
2
3
+ /***
4
+ *** @purge temp
5
+ ***/
6
+ add_action('um_admin_do_action__purge_temp', 'um_admin_do_action__purge_temp');
7
+ function um_admin_do_action__purge_temp( $action ){
8
+ global $ultimatemember;
9
+ if ( !is_admin() || !current_user_can('manage_options') ) die();
10
+
11
+ $ultimatemember->files->remove_dir( $ultimatemember->files->upload_temp );
12
+
13
+ $url = remove_query_arg('um_adm_action', $ultimatemember->permalinks->get_current_url() );
14
+ $url = add_query_arg('update','purged_temp',$url);
15
+ exit( wp_redirect($url) );
16
+ }
17
+
18
/***
19
*** @duplicate form
20
***/
admin/core/um-admin-dashboard.php ADDED
@@ -0,0 +1,159 @@
1
+ <?php
2
+
3
+ class UM_Admin_Dashboard {
4
+
5
+ function __construct() {
6
+
7
+ $this->slug = 'ultimatemember';
8
+
9
+ $this->about_tabs['about'] = 'About';
10
+ $this->about_tabs['start'] = 'Getting Started';
11
+
12
+ add_action('admin_menu', array(&$this, 'primary_admin_menu'), 0);
13
+ add_action('admin_menu', array(&$this, 'secondary_menu_items'), 1000);
14
+
15
+ }
16
+
17
+ /***
18
+ *** @setup admin menu
19
+ ***/
20
+ function primary_admin_menu() {
21
+
22
+ $this->pagehook = add_menu_page( __('Ultimate Member', $this->slug), __('Ultimate Member', $this->slug), 'manage_options', $this->slug, array(&$this, 'admin_page'), 'dashicons-admin-users', '66.78578');
23
+ add_action('load-'.$this->pagehook, array(&$this, 'on_load_page'));
24
+
25
+ add_submenu_page( $this->slug, __('Dashboard', $this->slug), __('Dashboard', $this->slug), 'manage_options', $this->slug, array(&$this, 'admin_page') );
26
+
27
+ foreach( $this->about_tabs as $k => $tab ) {
28
+ add_submenu_page( '_'. $k . '_um', sprintf(__('%s | Ultimate Member', $this->slug), $tab), sprintf(__('%s | Ultimate Member', $this->slug), $tab), 'manage_options', $this->slug . '-' . $k, array(&$this, 'admin_page') );
29
+ }
30
+
31
+ }
32
+
33
+ /***
34
+ *** @secondary admin menu (after settings)
35
+ ***/
36
+ function secondary_menu_items() {
37
+
38
+ add_submenu_page( $this->slug, __('Forms', $this->slug), __('Forms', $this->slug), 'manage_options', 'edit.php?post_type=um_form', '', '' );
39
+ add_submenu_page( $this->slug, __('User Roles', $this->slug), __('User Roles', $this->slug), 'manage_options', 'edit.php?post_type=um_role', '', '' );
40
+
41
+ if ( um_get_option('members_page' ) || !get_option('um_options') ){
42
+ add_submenu_page( $this->slug, __('Member Directories', $this->slug), __('Member Directories', $this->slug), 'manage_options', 'edit.php?post_type=um_directory', '', '' );
43
+ }
44
+
45
+ do_action('um_extend_admin_menu');
46
+
47
+ }
48
+
49
+ /***
50
+ *** @load metabox stuff
51
+ ***/
52
+ function on_load_page() {
53
+
54
+ wp_enqueue_script('common');
55
+ wp_enqueue_script('wp-lists');
56
+ wp_enqueue_script('postbox');
57
+
58
+ add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );
59
+
60
+ /** custom metaboxes for dashboard defined here **/
61
+
62
+ add_meta_box('um-metaboxes-contentbox-1', __('Users Overview','ultimatemember'), array(&$this, 'users_overview'), $this->pagehook, 'normal', 'core');
63
+
64
+ add_meta_box('um-metaboxes-sidebox-1', __('Purge Temp Files','ultimatemember'), array(&$this, 'purge_temp'), $this->pagehook, 'side', 'core');
65
+
66
+ }
67
+
68
+ function users_overview() {
69
+ global $ultimatemember;
70
+ include_once um_path . 'admin/templates/dashboard/users.php';
71
+ }
72
+
73
+ function purge_temp() {
74
+ global $ultimatemember;
75
+ include_once um_path . 'admin/templates/dashboard/purge.php';
76
+ }
77
+
78
+ /***
79
+ *** @get a directory size
80
+ ***/
81
+ function dir_size( $directory ) {
82
+ global $ultimatemember;
83
+ if ( $directory == 'temp' ) {
84
+ $directory = $ultimatemember->files->upload_temp;
85
+ $size = 0;
86
+ foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file){
87
+ $size+=$file->getSize();
88
+ }
89
+ return round ( $size / 1048576, 2);
90
+ }
91
+ return 0;
92
+ }
93
+
94
+ /***
95
+ *** @which admin page to show?
96
+ ***/
97
+ function admin_page() {
98
+
99
+ $page = $_REQUEST['page'];
100
+ if ( $page == 'ultimatemember' ) {
101
+
102
+ ?>
103
+
104
+ <div id="um-metaboxes-general" class="wrap">
105
+
106
+ <h2>Ultimate Member <sup><?php echo ultimatemember_version; ?></sup></h2>
107
+
108
+ <form action="admin-post.php" method="post">
109
+
110
+ <?php wp_nonce_field('um-metaboxes-general'); ?>
111
+ <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
112
+ <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
113
+
114
+ <input type="hidden" name="action" value="save_um_metaboxes_general" />
115
+
116
+ <div id="poststuff">
117
+
118
+ <div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
119
+
120
+ <div id="postbox-container-2" class="postbox-container"><?php do_meta_boxes($this->pagehook,'normal',null); ?></div>
121
+ <div id="postbox-container-1" class="postbox-container"><?php do_meta_boxes($this->pagehook,'side',null); ?></div>
122
+
123
+ </div>
124
+
125
+ </div>
126
+
127
+ </form>
128
+ </div><div class="um-admin-clear"></div>
129
+
130
+ <div class="um-admin-dash-share"><?php global $reduxConfig; foreach ( $reduxConfig->args['share_icons'] as $k => $arr ) { ?><a href="<?php echo $arr['url']; ?>" class="um-about-icon um-admin-tipsy-n" title="<?php echo $arr['title']; ?>" target="_blank"><i class="<?php echo $arr['icon']; ?>"></i></a><?php } ?>
131
+ </div><div class="um-admin-clear"></div>
132
+
133
+ <script type="text/javascript">
134
+ //<![CDATA[
135
+ jQuery(document).ready( function($) {
136
+ // postboxes setup
137
+ postboxes.add_postbox_toggles('<?php echo $this->pagehook; ?>');
138
+ });
139
+ //]]>
140
+ </script>
141
+
142
+ <?php
143
+
144
+ } else if ( strstr( $page, 'ultimatemember-' ) ) {
145
+
146
+ $template = str_replace('ultimatemember-','',$page);
147
+ $file = um_path . 'admin/templates/welcome/'. $template . '.php';
148
+
149
+ if ( file_exists( $file ) ){
150
+ include_once um_path . 'admin/templates/welcome/'. $template . '.php';
151
+ }
152
+
153
+ }
154
+
155
+ }
156
+
157
+ }
158
+
159
+ $um_dashboard = new UM_Admin_Dashboard();
admin/core/um-admin-notices.php CHANGED
@@ -111,6 +111,10 @@ class UM_Admin_Notices {
111
$update = $_REQUEST['update'];
112
switch($update) {
113
114
case 'form_duplicated':
115
$messages[0]['content'] = __('The form has been duplicated successfully.','ultimatemember');
116
break;
111
$update = $_REQUEST['update'];
112
switch($update) {
113
114
+ case 'purged_temp':
115
+ $messages[0]['content'] = __('Your temp uploads directory is now clean.','ultimatemember');
116
+ break;
117
+
118
case 'form_duplicated':
119
$messages[0]['content'] = __('The form has been duplicated successfully.','ultimatemember');
120
break;
admin/templates/dashboard.php DELETED
@@ -1,36 +0,0 @@
1
- <?php global $ultimatemember; ?>
2
-
3
- <div class="um-admin-dash-container">
4
-
5
- <div class="um-admin-dash-head">
6
-
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
-
28
- <div class="um-admin-dash-foot">
29
- <div class="um-admin-dash-share">
30
-
31
- <?php global $reduxConfig; foreach ( $reduxConfig->args['share_icons'] as $k => $arr ) { ?><a href="<?php echo $arr['url']; ?>" class="um-about-icon um-admin-tipsy-n" title="<?php echo $arr['title']; ?>" target="_blank"><i class="<?php echo $arr['icon']; ?>"></i></a><?php } ?>
32
-
33
- </div><div class="clear"></div>
34
- </div>
35
-
36
- </div>
admin/templates/dashboard/overview.php DELETED
@@ -1,158 +0,0 @@
1
- <div class="um-admin-dash-two-col">
2
-
3
- <div class="um-admin-dash-col">
4
-
5
- <h3><?php _e('Recent Members','ultimatemember'); ?></h3>
6
-
7
- <?php foreach( $ultimatemember->query->get_users_by_status('approved') as $user_id ) { um_fetch_user( $user_id ); ?>
8
-
9
- <div class="um-admin-dash-item">
10
-
11
- <div class="um-admin-dash-thumb">
12
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
13
- </div>
14
-
15
- <div class="um-admin-dash-info">
16
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
17
- </div>
18
-
19
- <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?>
20
-
21
- <?php
22
-
23
- if ( um_user('submitted') ) {
24
-
25
- echo '<a href="#" class="um-admin-dash-review um-admin-tipsy-n" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration" title="Review registration info"><i class="um-icon-information-circled"></i></a>';
26
-
27
- }
28
-
29
- ?>
30
-
31
- </div>
32
-
33
- <div class="um-admin-dash-more">
34
-
35
- </div>
36
-
37
- </div>
38
-
39
- <?php um_reset_user(); } ?>
40
-
41
- </div>
42
-
43
- <div class="um-admin-dash-col">
44
-
45
- <?php $users = $ultimatemember->query->get_users_by_status('awaiting_admin_review'); ?>
46
- <h3><?php _e('Users Awaiting Review','ultimatemember'); ?><span class="um-admin-dash-count red count-0">0</span></h3>
47
-
48
- <?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
49
-
50
- <div class="um-admin-dash-item">
51
-
52
- <div class="um-admin-dash-thumb">
53
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
54
- </div>
55
-
56
- <div class="um-admin-dash-info">
57
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
58
- </div>
59
-
60
- <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?>
61
-
62
- <?php
63
-
64
- if ( um_user('submitted') ) {
65
-
66
- echo '<a href="#" class="um-admin-dash-review um-admin-tipsy-n" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration" title="Review registration info"><i class="um-icon-information-circled"></i></a>';
67
-
68
- }
69
-
70
- ?>
71
-
72
- </div>
73
-
74
- <div class="um-admin-dash-more">
75
- <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_approve_membership'); ?>" class="ok">Approve</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_reject_membership'); ?>" class="red">Reject</a>
76
- </div>
77
-
78
- </div>
79
-
80
- <?php um_reset_user(); } ?>
81
-
82
- <?php if ( !$users ) { ?>
83
- <div class="um-admin-dash-item"><?php _e('No users are awaiting manual verification so far.','ultimatemember'); ?></div>
84
- <?php } ?>
85
-
86
- </div>
87
-
88
- </div>
89
-
90
- <div class="um-admin-dash-two-col">
91
-
92
- <div class="um-admin-dash-col">
93
-
94
- <?php $users = $ultimatemember->query->get_users_by_status('awaiting_email_confirmation'); ?>
95
- <h3><?php _e('Pending e-mail confirmation','ultimatemember'); ?><span class="um-admin-dash-count red count-0">0</span></h3>
96
-
97
- <?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
98
-
99
- <div class="um-admin-dash-item">
100
-
101
- <div class="um-admin-dash-thumb">
102
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
103
- </div>
104
-
105
- <div class="um-admin-dash-info">
106
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
107
- </div>
108
-
109
- <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?></div>
110
-
111
- <div class="um-admin-dash-more">
112
- <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_resend_activation'); ?>" class="ok">Resend Email</a>
113
- </div>
114
-
115
- </div>
116
-
117
- <?php um_reset_user(); } ?>
118
-
119
- <?php if ( !$users ) { ?>
120
- <div class="um-admin-dash-item"><?php _e('No users are awaiting e-mail validation yet.','ultimatemember'); ?></div>
121
- <?php } ?>
122
-
123
- </div>
124
-
125
- <div class="um-admin-dash-col">
126
-
127
- <?php $users = $ultimatemember->query->get_users_by_status('inactive'); ?>
128
- <h3><?php _e('Recently Deactivated','ultimatemember'); ?><span class="um-admin-dash-count red count-0">0</span></h3>
129
-
130
- <?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
131
-
132
- <div class="um-admin-dash-item">
133
-
134
- <div class="um-admin-dash-thumb">
135
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
136
- </div>
137
-
138
- <div class="um-admin-dash-info">
139
- <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
140
- </div>
141
-
142
- <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?></div>
143
-
144
- <div class="um-admin-dash-more">
145
- <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_reenable'); ?>" class="ok">Re-activate</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_delete'); ?>" class="red">Delete</a>
146
- </div>
147
-
148
- </div>
149
-
150
- <?php um_reset_user(); } ?>
151
-
152
- <?php if ( !$users ) { ?>
153
- <div class="um-admin-dash-item"><?php _e('No users have been deactivated recently.','ultimatemember'); ?></div>
154
- <?php } ?>
155
-
156
- </div>
157
-
158
- </div>
admin/templates/dashboard/purge.php ADDED
@@ -0,0 +1,11 @@
1
+ <?php if ( $this->dir_size('temp') > 0.1 ) { ?>
2
+
3
+ <p>You can free up <span class="red"><?php echo $this->dir_size('temp'); ?>MB</span> by purging your temp upload directory.</p>
4
+
5
+ <p><a href="<?php echo add_query_arg( 'um_adm_action', 'purge_temp' ); ?>" class="button">Purge Temp</a></p>
6
+
7
+ <?php } else { ?>
8
+
9
+ <p>Your temp uploads directory is <span class="ok">clean</span>. There is nothing to purge.</p>
10
+
11
+ <?php } ?>
admin/templates/dashboard/users.php ADDED
@@ -0,0 +1,162 @@
1
+ <div class="um-admin-dash-content">
2
+
3
+ <div class="um-admin-dash-two-col">
4
+
5
+ <div class="um-admin-dash-col">
6
+
7
+ <h4><?php _e('Recent Members','ultimatemember'); ?></h4>
8
+
9
+ <?php foreach( $ultimatemember->query->get_users_by_status('approved') as $user_id ) { um_fetch_user( $user_id ); ?>
10
+
11
+ <div class="um-admin-dash-item">
12
+
13
+ <div class="um-admin-dash-thumb">
14
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
15
+ </div>
16
+
17
+ <div class="um-admin-dash-info">
18
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
19
+ </div>
20
+
21
+ <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?>
22
+
23
+ <?php
24
+
25
+ if ( um_user('submitted') ) {
26
+
27
+ echo '<a href="#" class="um-admin-dash-review um-admin-tipsy-n" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration" title="Review registration info"><i class="um-icon-information-circled"></i></a>';
28
+
29
+ }
30
+
31
+ ?>
32
+
33
+ </div>
34
+
35
+ <div class="um-admin-dash-more">
36
+
37
+ </div>
38
+
39
+ </div>
40
+
41
+ <?php um_reset_user(); } ?>
42
+
43
+ </div>
44
+
45
+ <div class="um-admin-dash-col">
46
+
47
+ <?php $users = $ultimatemember->query->get_users_by_status('awaiting_admin_review'); ?>
48
+ <h4><?php _e('Users Awaiting Review','ultimatemember'); ?></h4>
49
+
50
+ <?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
51
+
52
+ <div class="um-admin-dash-item">
53
+
54
+ <div class="um-admin-dash-thumb">
55
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
56
+ </div>
57
+
58
+ <div class="um-admin-dash-info">
59
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
60
+ </div>
61
+
62
+ <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?>
63
+
64
+ <?php
65
+
66
+ if ( um_user('submitted') ) {
67
+
68
+ echo '<a href="#" class="um-admin-dash-review um-admin-tipsy-n" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration" title="Review registration info"><i class="um-icon-information-circled"></i></a>';
69
+
70
+ }
71
+
72
+ ?>
73
+
74
+ </div>
75
+
76
+ <div class="um-admin-dash-more">
77
+ <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_approve_membership'); ?>" class="ok">Approve</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_reject_membership'); ?>" class="red">Reject</a>
78
+ </div>
79
+
80
+ </div>
81
+
82
+ <?php um_reset_user(); } ?>
83
+
84
+ <?php if ( !$users ) { ?>
85
+ <div class="um-admin-dash-item"><?php _e('No users are awaiting manual verification so far.','ultimatemember'); ?></div>
86
+ <?php } ?>
87
+
88
+ </div>
89
+
90
+ </div>
91
+
92
+ <div class="um-admin-dash-two-col">
93
+
94
+ <div class="um-admin-dash-col">
95
+
96
+ <?php $users = $ultimatemember->query->get_users_by_status('awaiting_email_confirmation'); ?>
97
+ <h4><?php _e('Pending e-mail confirmation','ultimatemember'); ?></h4>
98
+
99
+ <?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
100
+
101
+ <div class="um-admin-dash-item">
102
+
103
+ <div class="um-admin-dash-thumb">
104
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
105
+ </div>
106
+
107
+ <div class="um-admin-dash-info">
108
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
109
+ </div>
110
+
111
+ <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?></div>
112
+
113
+ <div class="um-admin-dash-more">
114
+ <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_resend_activation'); ?>" class="ok">Resend Email</a>
115
+ </div>
116
+
117
+ </div>
118
+
119
+ <?php um_reset_user(); } ?>
120
+
121
+ <?php if ( !$users ) { ?>
122
+ <div class="um-admin-dash-item"><?php _e('No users are awaiting e-mail validation yet.','ultimatemember'); ?></div>
123
+ <?php } ?>
124
+
125
+ </div>
126
+
127
+ <div class="um-admin-dash-col">
128
+
129
+ <?php $users = $ultimatemember->query->get_users_by_status('inactive'); ?>
130
+ <h4><?php _e('Recently Deactivated','ultimatemember'); ?></h4>
131
+
132
+ <?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
133
+
134
+ <div class="um-admin-dash-item">
135
+
136
+ <div class="um-admin-dash-thumb">
137
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
138
+ </div>
139
+
140
+ <div class="um-admin-dash-info">
141
+ <a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
142
+ </div>
143
+
144
+ <div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?></div>
145
+
146
+ <div class="um-admin-dash-more">
147
+ <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_reenable'); ?>" class="ok">Re-activate</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_delete'); ?>" class="red">Delete</a>
148
+ </div>
149
+
150
+ </div>
151
+
152
+ <?php um_reset_user(); } ?>
153
+
154
+ <?php if ( !$users ) { ?>
155
+ <div class="um-admin-dash-item"><?php _e('No users have been deactivated recently.','ultimatemember'); ?></div>
156
+ <?php } ?>
157
+
158
+ </div>
159
+
160
+ </div>
161
+
162
+ </div><div class="um-admin-clear"></div>
admin/templates/directory/profile.php CHANGED
@@ -60,7 +60,7 @@
60
<?php if ( $i == 1 ) { ?>
61
<a href="#" class="um-admin-clone button um-admin-tipsy-n" title="New Field"><i class="um-icon-plus" style="margin-right:0!important"></i></a>
62
<?php } else { ?>
63
- <a href="#" class="um-admin-clone-remove button um-admin-tipsy-n" title="Remove Field"><i class="um-icon-remove" style="margin-right:0!important"></i></a>
64
<?php } ?>
65
66
</span>
@@ -126,7 +126,7 @@
126
<?php if ( $i == 1 ) { ?>
127
<a href="#" class="um-admin-clone button um-admin-tipsy-n" title="New Field"><i class="um-icon-plus" style="margin-right:0!important"></i></a>
128
<?php } else { ?>
129
- <a href="#" class="um-admin-clone-remove button um-admin-tipsy-n" title="Remove Field"><i class="um-icon-remove" style="margin-right:0!important"></i></a>
130
<?php } ?>
131
132
</span>
60
<?php if ( $i == 1 ) { ?>
61
<a href="#" class="um-admin-clone button um-admin-tipsy-n" title="New Field"><i class="um-icon-plus" style="margin-right:0!important"></i></a>
62
<?php } else { ?>
63
+ <a href="#" class="um-admin-clone-remove button um-admin-tipsy-n" title="Remove Field"><i class="um-icon-close" style="margin-right:0!important"></i></a>
64
<?php } ?>
65
66
</span>
126
<?php if ( $i == 1 ) { ?>
127
<a href="#" class="um-admin-clone button um-admin-tipsy-n" title="New Field"><i class="um-icon-plus" style="margin-right:0!important"></i></a>
128
<?php } else { ?>
129
+ <a href="#" class="um-admin-clone-remove button um-admin-tipsy-n" title="Remove Field"><i class="um-icon-close" style="margin-right:0!important"></i></a>
130
<?php } ?>
131
132
</span>
admin/templates/directory/search.php CHANGED
@@ -46,7 +46,7 @@
46
<?php if ( $i == 1 ) { ?>
47
<a href="#" class="um-admin-clone button um-admin-tipsy-n" title="New Field"><i class="um-icon-plus" style="margin-right:0!important"></i></a>
48
<?php } else { ?>
49
- <a href="#" class="um-admin-clone-remove button um-admin-tipsy-n" title="Remove Field"><i class="um-icon-remove" style="margin-right:0!important"></i></a>
50
<?php } ?>
51
52
</span>
46
<?php if ( $i == 1 ) { ?>
47
<a href="#" class="um-admin-clone button um-admin-tipsy-n" title="New Field"><i class="um-icon-plus" style="margin-right:0!important"></i></a>
48
<?php } else { ?>
49
+ <a href="#" class="um-admin-clone-remove button um-admin-tipsy-n" title="Remove Field"><i class="um-icon-close" style="margin-right:0!important"></i></a>
50
<?php } ?>
51
52
</span>
admin/templates/{about.php → welcome/about.php} RENAMED
@@ -1,5 +1,5 @@
1
2
- <?php global $ultimatemember; include_once um_path . 'admin/templates/about_header.php'; ?>
3
4
<div class="changelog headline-feature dfw">
5
<h2>Introducing Ultimate Member</h2>
@@ -71,4 +71,4 @@
71
72
</div>
73
74
- <?php include_once um_path . 'admin/templates/about_footer.php'; ?>
1
2
+ <?php global $ultimatemember; include_once um_path . 'admin/templates/welcome/about_header.php'; ?>
3
4
<div class="changelog headline-feature dfw">
5
<h2>Introducing Ultimate Member</h2>
71
72
</div>
73
74
+ <?php include_once um_path . 'admin/templates/welcome/about_footer.php'; ?>
admin/templates/{about_footer.php → welcome/about_footer.php} RENAMED
File without changes
admin/templates/{about_header.php → welcome/about_header.php} RENAMED
File without changes
admin/templates/{start.php → welcome/start.php} RENAMED
@@ -1,5 +1,5 @@
1
2
- <?php global $ultimatemember; include_once um_path . 'admin/templates/about_header.php'; ?>
3
4
<div class="changelog headline-feature dfw">
5
<h2>Getting Started</h2>
@@ -63,4 +63,4 @@
63
</div>
64
</div>
65
66
- <?php include_once um_path . 'admin/templates/about_footer.php'; ?>
1
2
+ <?php global $ultimatemember; include_once um_path . 'admin/templates/welcome/about_header.php'; ?>
3
4
<div class="changelog headline-feature dfw">
5
<h2>Getting Started</h2>
63
</div>
64
</div>
65
66
+ <?php include_once um_path . 'admin/templates/welcome/about_footer.php'; ?>
admin/um-admin-init.php CHANGED
@@ -4,15 +4,7 @@ class UM_Admin_API {
4
5
function __construct() {
6
7
- $this->slug = 'ultimatemember';
8
-
9
- $this->about_tabs['about'] = 'About';
10
- $this->about_tabs['start'] = 'Getting Started';
11
-
12
add_action('admin_init', array(&$this, 'admin_init'), 0);
13
-
14
- add_action('admin_menu', array(&$this, 'admin_menu'), 0 );
15
- add_action('admin_menu', array(&$this, 'secondary_menu_items'), 1000 );
16
17
$_redux_tracker['dev_mode'] = false;
18
$_redux_tracker['hash'] = md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] );
@@ -26,64 +18,8 @@ class UM_Admin_API {
26
require_once( um_path . 'admin/core/um-admin-redux.php' );
27
}
28
29
- }
30
-
31
- /***
32
- *** @Creates menu
33
- ***/
34
- function admin_menu() {
35
-
36
- add_menu_page( __('Ultimate Member', $this->slug), __('Ultimate Member', $this->slug), 'manage_options', $this->slug, array(&$this, 'admin_page'), 'dashicons-admin-users', '66.78578');
37
-
38
- add_submenu_page( $this->slug, __('Dashboard', $this->slug), __('Dashboard', $this->slug), 'manage_options', $this->slug, array(&$this, 'admin_page') );
39
-
40
- foreach( $this->about_tabs as $k => $tab ) {
41
- add_submenu_page( '_'. $k . '_um', sprintf(__('%s | Ultimate Member', $this->slug), $tab), sprintf(__('%s | Ultimate Member', $this->slug), $tab), 'manage_options', $this->slug . '-' . $k, array(&$this, 'admin_page') );
42
- }
43
-
44
- }
45
-
46
- /***
47
- *** @After "settings" menu
48
- ***/
49
- function secondary_menu_items() {
50
-
51
- add_submenu_page( $this->slug, __('Forms', $this->slug), __('Forms', $this->slug), 'manage_options', 'edit.php?post_type=um_form', '', '' );
52
-
53
- add_submenu_page( $this->slug, __('User Roles', $this->slug), __('User Roles', $this->slug), 'manage_options', 'edit.php?post_type=um_role', '', '' );
54
-
55
- if ( um_get_option('members_page' ) || !get_option('um_options') ){
56
- add_submenu_page( $this->slug, __('Member Directories', $this->slug), __('Member Directories', $this->slug), 'manage_options', 'edit.php?post_type=um_directory', '', '' );
57
- }
58
-
59
- do_action('um_extend_admin_menu');
60
-
61
- }
62
-
63
- /***
64
- *** @Admin page function
65
- ***/
66
- function admin_page() {
67
-
68
- $page = $_REQUEST['page'];
69
-
70
- if ( $page == 'ultimatemember' ) {
71
- include_once um_path . 'admin/templates/dashboard.php';
72
- }
73
74
- if ( strstr( $page, 'ultimatemember-' ) ) {
75
-
76
- $template = str_replace('ultimatemember-','',$page);
77
- $file = um_path . 'admin/templates/'. $template . '.php';
78
-
79
- if ( file_exists( $file ) ){
80
- include_once um_path . 'admin/templates/'. $template . '.php';
81
- } else {
82
- echo '<h4>' . __('Please create a team.php template in admin templates.','ultimatemember') . '</h4>';
83
- }
84
-
85
- }
86
-
87
}
88
89
/***
4
5
function __construct() {
6
7
add_action('admin_init', array(&$this, 'admin_init'), 0);
8
9
$_redux_tracker['dev_mode'] = false;
10
$_redux_tracker['hash'] = md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] );
18
require_once( um_path . 'admin/core/um-admin-redux.php' );
19
}
20
21
+ require_once um_path . 'admin/core/um-admin-dashboard.php';
22
23
}
24
25
/***
core/um-actions-profile.php CHANGED
@@ -87,6 +87,8 @@
87
$ultimatemember->user->update_files( $files );
88
}
89
90
do_action('um_user_after_updating_profile', $to_update );
91
92
if ( !isset( $args['is_signup'] ) ) {
87
$ultimatemember->user->update_files( $files );
88
}
89
90
+ do_action('um_after_user_upload', um_user('ID') );
91
+
92
do_action('um_user_after_updating_profile', $to_update );
93
94
if ( !isset( $args['is_signup'] ) ) {
core/um-actions-user.php CHANGED
@@ -6,15 +6,18 @@
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
/***
6
add_action('um_after_user_upload','um_remove_unused_uploads', 10);
7
function um_remove_unused_uploads( $user_id ) {
8
global $ultimatemember;
9
+
10
um_fetch_user( $user_id );
11
+
12
$array = $ultimatemember->user->profile;
13
+
14
$files = glob( um_user_uploads_dir() . '*', GLOB_BRACE);
15
foreach($files as $file) {
16
$str = basename($file);
17
if ( !strstr( $str, 'profile_photo') && !strstr( $str, 'cover_photo') && !preg_grep('/' . $str . '/', $array ) )
18
unlink( $file );
19
}
20
+
21
}
22
23
/***
core/um-builtin.php CHANGED
@@ -555,7 +555,7 @@ class UM_Builtin {
555
'required' => 0,
556
'public' => 1,
557
'editable' => 1,
558
- 'options' => array('Male','Female')
559
),
560
561
'country' => array(
@@ -563,7 +563,7 @@ class UM_Builtin {
563
'metakey' => 'country',
564
'type' => 'select',
565
'label' => __('Country','ultimatemember'),
566
- 'placeholder' => 'Choose a Country',
567
'required' => 0,
568
'public' => 1,
569
'editable' => 1,
555
'required' => 0,
556
'public' => 1,
557
'editable' => 1,
558
+ 'options' => array( __('Male','ultimatemember'), __('Female','ultimatemember') )
559
),
560
561
'country' => array(
563
'metakey' => 'country',
564
'type' => 'select',
565
'label' => __('Country','ultimatemember'),
566
+ 'placeholder' => __('Choose a Country','ultimatemember'),
567
'required' => 0,
568
'public' => 1,
569
'editable' => 1,
core/um-files.php CHANGED
@@ -504,9 +504,6 @@ class UM_Files {
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;
512
@@ -518,7 +515,7 @@ class UM_Files {
518
function remove_dir($dir) {
519
if ( file_exists( $dir ) ) {
520
foreach(glob($dir . '/*') as $file) {
521
- if(is_dir($file)) remove_dir($file); else unlink($file);
522
} rmdir($dir);
523
}
524
}
504
// update user's meta
505
update_user_meta( $user_id, $key, $filename );
506
507
// the url of upload
508
return $this->upload_baseurl . $user_id . '/' . $filename;
509
515
function remove_dir($dir) {
516
if ( file_exists( $dir ) ) {
517
foreach(glob($dir . '/*') as $file) {
518
+ if(is_dir($file)) $this->remove_dir($file); else unlink($file);
519
} rmdir($dir);
520
}
521
}
core/um-filters-members.php CHANGED
@@ -80,6 +80,11 @@
80
81
if ( !in_array( $field, $ultimatemember->members->core_search_fields ) ) {
82
83
$query_args['meta_query'][] = array(
84
'key' => $field,
85
'value' => $value,
80
81
if ( !in_array( $field, $ultimatemember->members->core_search_fields ) ) {
82
83
+ if ( strstr($field, 'role_' ) ) {
84
+ $field = 'role';
85
+ $operator = '=';
86
+ }
87
+
88
$query_args['meta_query'][] = array(
89
'key' => $field,
90
'value' => $value,
core/um-members.php CHANGED
@@ -61,6 +61,7 @@ class UM_Members {
61
global $ultimatemember;
62
63
$fields = $ultimatemember->builtin->all_user_fields;
64
$attrs = $fields[$filter];
65
66
if ( $ultimatemember->builtin->is_dropdown_field( $filter ) ) {
@@ -79,9 +80,18 @@ class UM_Members {
79
80
<option></option>
81
82
- <?php foreach( $attrs['options'] as $k => $v ) { $v = stripslashes($v); ?>
83
84
- <option value="<?php echo $v; ?>" <?php um_select_if_in_query_params( $filter, $v ); ?>><?php echo $v; ?></option>
85
86
<?php } ?>
87
61
global $ultimatemember;
62
63
$fields = $ultimatemember->builtin->all_user_fields;
64
+
65
$attrs = $fields[$filter];
66
67
if ( $ultimatemember->builtin->is_dropdown_field( $filter ) ) {
80
81
<option></option>
82
83
+ <?php foreach( $attrs['options'] as $k => $v ) {
84
+
85
+ $v = stripslashes($v);
86
+
87
+ $opt = $v;
88
+
89
+ if ( strstr($filter, 'role_') )
90
+ $opt = $k;
91
+
92
+ ?>
93
94
+ <option value="<?php echo $opt; ?>" <?php um_select_if_in_query_params( $filter, $opt ); ?>><?php echo $v; ?></option>
95
96
<?php } ?>
97
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.46
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.47
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.46
11
12
License: GNU Version 2 or Any Later Version
13
@@ -186,6 +186,15 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
186
187
== Changelog ==
188
189
= 1.0.46: February 8, 2015 =
190
191
(Update Recommended)
7
Requires at least: 4.1
8
Tested up to: 4.1
9
10
+ Stable Tag: 1.0.47
11
12
License: GNU Version 2 or Any Later Version
13
186
187
== Changelog ==
188
189
+ = 1.0.47: February 9, 2015 =
190
+
191
+ * New: A more native dashboard for Ultimate Member
192
+ * New: view your temp uploads directory size and purge it from dashboard
193
+ * Fixed: user uploads bug with handling photo uploads at once
194
+ * Fixed: issue with using UM role as search filter in directory
195
+ * Fixed: a little icon issue with directory backend
196
+ * Fixed: localized a few words from predefined fields
197
+
198
= 1.0.46: February 8, 2015 =
199
200
(Update Recommended)