Ultimate Member – User Profile & Membership Plugin - Version 2.0.4

Version Description

Download this release

Release Info

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

Code changes from version 1.3.88 to 2.0.4

Files changed (80) hide show
  1. addons/bp_avatar_transfer.php +0 -99
  2. addons/generate_random_users.php +0 -261
  3. addons/gravatar_transfer.php +0 -83
  4. addons/install_info.php +0 -419
  5. admin/assets/css/um-admin-global.css +0 -90
  6. admin/assets/css/um-admin-redux.css +0 -227
  7. admin/assets/js/um-admin-users.js +0 -30
  8. admin/core/lib/ReduxFramework/CHANGELOG.md +0 -2000
  9. admin/core/lib/ReduxFramework/README.md +0 -134
  10. admin/core/lib/ReduxFramework/README.txt +0 -1207
  11. admin/core/lib/ReduxFramework/ReduxCore/assets/css/color-picker/color-picker.css +0 -1
  12. admin/core/lib/ReduxFramework/ReduxCore/assets/css/color-picker/color-picker.scss +0 -97
  13. admin/core/lib/ReduxFramework/ReduxCore/assets/css/import_export/import_export.css +0 -1
  14. admin/core/lib/ReduxFramework/ReduxCore/assets/css/media/media.css +0 -1
  15. admin/core/lib/ReduxFramework/ReduxCore/assets/css/media/media.scss +0 -61
  16. admin/core/lib/ReduxFramework/ReduxCore/assets/css/redux-admin.css +0 -1
  17. admin/core/lib/ReduxFramework/ReduxCore/assets/css/redux-admin.scss +0 -1516
  18. admin/core/lib/ReduxFramework/ReduxCore/assets/css/redux-fields.css +0 -1
  19. admin/core/lib/ReduxFramework/ReduxCore/assets/css/redux-vendor.css +0 -1
  20. admin/core/lib/ReduxFramework/ReduxCore/assets/css/rtl.css +0 -1
  21. admin/core/lib/ReduxFramework/ReduxCore/assets/css/rtl.scss +0 -126
  22. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css +0 -4
  23. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.eot +0 -0
  24. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.svg +0 -934
  25. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.ttf +0 -0
  26. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.woff +0 -0
  27. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_animated.scss +0 -34
  28. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_bordered-pulled.scss +0 -16
  29. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_core.scss +0 -13
  30. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_fixed-width.scss +0 -6
  31. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_icons.scss +0 -615
  32. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_larger.scss +0 -13
  33. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_list.scss +0 -19
  34. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_mixins.scss +0 -27
  35. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_path.scss +0 -14
  36. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_rotated-flipped.scss +0 -20
  37. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_stacked.scss +0 -20
  38. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/_variables.scss +0 -318
  39. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css +0 -4
  40. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css.map +0 -7
  41. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.scss +0 -17
  42. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  43. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  44. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  45. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  46. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  47. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_ffffff_1x400.png +0 -0
  48. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  49. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  50. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_222222_256x240.png +0 -0
  51. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_2e83ff_256x240.png +0 -0
  52. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_454545_256x240.png +0 -0
  53. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_888888_256x240.png +0 -0
  54. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_cd0a0a_256x240.png +0 -0
  55. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_f6cf3b_256x240.png +0 -0
  56. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_ffffff_256x240.png +0 -0
  57. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css +0 -9
  58. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.less +0 -793
  59. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.scss +0 -799
  60. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css +0 -617
  61. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/qtip/jquery.qtip.min.css +0 -3
  62. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css +0 -507
  63. admin/core/lib/ReduxFramework/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.min.css +0 -1
  64. admin/core/lib/ReduxFramework/ReduxCore/assets/img/1c.png +0 -0
  65. admin/core/lib/ReduxFramework/ReduxCore/assets/img/1col.png +0 -0
  66. admin/core/lib/ReduxFramework/ReduxCore/assets/img/2-col-portfolio.png +0 -0
  67. admin/core/lib/ReduxFramework/ReduxCore/assets/img/2cl.png +0 -0
  68. admin/core/lib/ReduxFramework/ReduxCore/assets/img/2cr.png +0 -0
  69. admin/core/lib/ReduxFramework/ReduxCore/assets/img/3-col-portfolio.png +0 -0
  70. admin/core/lib/ReduxFramework/ReduxCore/assets/img/3cl.png +0 -0
  71. admin/core/lib/ReduxFramework/ReduxCore/assets/img/3cm.png +0 -0
  72. admin/core/lib/ReduxFramework/ReduxCore/assets/img/3cr.png +0 -0
  73. admin/core/lib/ReduxFramework/ReduxCore/assets/img/4-col-portfolio.png +0 -0
  74. admin/core/lib/ReduxFramework/ReduxCore/assets/img/ajax.gif +0 -0
  75. admin/core/lib/ReduxFramework/ReduxCore/assets/img/menu_icon.png +0 -0
  76. admin/core/lib/ReduxFramework/ReduxCore/assets/img/toggle_tabs.png +0 -0
  77. admin/core/lib/ReduxFramework/ReduxCore/assets/js/media/media.js +0 -220
  78. admin/core/lib/ReduxFramework/ReduxCore/assets/js/media/media.min.js +0 -1
  79. admin/core/lib/ReduxFramework/ReduxCore/assets/js/redux.js +0 -1818
  80. admin/core/lib/ReduxFramework/ReduxCore/assets/js/redux.min.js +0 -1
addons/bp_avatar_transfer.php DELETED
@@ -1,99 +0,0 @@
1
- <?php
2
-
3
- class UM_ADDON_bp_avatar_transfer {
4
-
5
- function __construct() {
6
-
7
- add_action('admin_menu', array(&$this, 'admin_menu'), 1001);
8
-
9
- add_action('admin_init', array(&$this, 'admin_init'), 1);
10
-
11
- add_action('um_admin_addon_hook', array(&$this, 'um_admin_addon_hook') );
12
-
13
- }
14
-
15
- function admin_menu() {
16
-
17
- global $ultimatemember;
18
- $this->addon = $ultimatemember->addons['bp_avatar_transfer'];
19
- add_submenu_page('ultimatemember', $this->addon[0], $this->addon[0], 'manage_options', 'bp_avatar_transfer', array(&$this, 'content') );
20
-
21
- }
22
-
23
- function um_admin_addon_hook( $hook ) {
24
- global $ultimatemember;
25
- switch( $hook ) {
26
- case 'bp_avatar_transfer':
27
- if ( class_exists('BuddyPress') ) {
28
-
29
- $path = bp_core_avatar_upload_path() . '/avatars';
30
-
31
- $files = glob( $path . '/*');
32
- $i = 0;
33
- foreach( $files as $key ) {
34
- $q = (count(glob("$key/*")) === 0) ? 0 : 1;
35
- if ( $q == 1 ) {
36
- $photo = glob( $key . '/*');
37
- foreach( $photo as $file ) {
38
- if ( strstr( $file, 'bpfull' ) ) {
39
- $get_user_id = explode('/', $file);
40
- array_pop($get_user_id);
41
- $user_id = end($get_user_id);
42
- if ( !file_exists( $ultimatemember->files->upload_basedir . $user_id . '/profile_photo.jpg' ) ) {
43
- $ultimatemember->files->new_user( $user_id );
44
- copy( $file, $ultimatemember->files->upload_basedir . $user_id . '/profile_photo.jpg' );
45
- update_user_meta($user_id, 'profile_photo', 'profile_photo.jpg');
46
- $i++;
47
- }
48
- }
49
- }
50
- }
51
- }
52
-
53
- $this->content = '<p><strong>Done. Process completed!</p>';
54
- $this->content .= $i . ' user(s) changed.</strong></p>';
55
-
56
- }
57
- break;
58
- }
59
- }
60
-
61
- function admin_init() {
62
- if ( isset( $_REQUEST['um-addon-hook'] ) ) {
63
- $hook = $_REQUEST['um-addon-hook'];
64
- do_action("um_admin_addon_hook", $hook);
65
- }
66
- }
67
-
68
- function content() {
69
-
70
- $this->process_link = add_query_arg('um-addon-hook','bp_avatar_transfer');
71
-
72
- ?>
73
-
74
- <div class="wrap">
75
-
76
- <h2>Ultimate Member <sup style="font-size:15px"><?php echo ultimatemember_version; ?></sup></h2>
77
-
78
- <h3><?php echo $this->addon[0]; ?></h3>
79
-
80
- <?php if ( isset( $this->content ) ) {
81
- echo $this->content;
82
- } else { ?>
83
-
84
- <p>This tool allows you to move all custom user photos/avatars from BuddyPress to Ultimate Member platform. This can help you If you are switching from BuddyPress.</p>
85
- <p>Depending on your users database, this could take a few moments. To start the process, click the following button.</p>
86
-
87
- <p><a href="<?php echo $this->process_link; ?>" class="button button-primary">Start transferring avatars</a></p>
88
-
89
- <?php } ?>
90
-
91
- </div><div class="clear"></div>
92
-
93
- <?php
94
-
95
- }
96
-
97
- }
98
-
99
- $UM_ADDON_bp_avatar_transfer = new UM_ADDON_bp_avatar_transfer();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/generate_random_users.php DELETED
@@ -1,261 +0,0 @@
1
- <?php
2
-
3
- class UM_ADDON_generate_random_users {
4
-
5
- function __construct() {
6
-
7
- add_action('admin_menu', array(&$this, 'admin_menu'), 1001);
8
-
9
- add_action('admin_init', array(&$this, 'admin_init'), 1);
10
-
11
- add_action('um_admin_addon_hook', array(&$this, 'um_admin_addon_hook') );
12
-
13
- }
14
-
15
-
16
- function admin_menu() {
17
-
18
- global $ultimatemember;
19
- $this->addon = $ultimatemember->addons['generate_random_users'];
20
- add_submenu_page('ultimatemember', $this->addon[0], $this->addon[0], 'manage_options', 'generate_random_users', array(&$this, 'content') );
21
-
22
- }
23
-
24
- function um_admin_addon_hook( $hook ) {
25
- global $ultimatemember;
26
-
27
- switch ( $hook ) {
28
- case 'generate_random_users':
29
- $json_url = "https://randomuser.me/api/";
30
-
31
- $arr_post_header = array( );
32
-
33
- if( isset( $_GET['gender'] ) ){
34
- $gender = $_GET['gender'];
35
- if( $gender != 'both' ){
36
- $json_url = add_query_arg('gender', $gender, $json_url );
37
- $arr_post_header['gender'] = $gender;
38
- }
39
- }
40
-
41
- if( isset( $_GET['nationality'] ) ){
42
- $nationality = implode(",", $_GET['nationality']);
43
- if( ! empty( $nationality ) ){
44
- $json_url = add_query_arg('nat', $nationality, $json_url );
45
- }
46
- $arr_post_header['nat'] = $nationality;
47
- }
48
-
49
- if( isset( $_GET['total_users'] ) ){
50
- $total_users = intval( $_GET['total_users'] );
51
- $json_url = add_query_arg('results', $total_users, $json_url );
52
- $arr_post_header['results'] = $total_users;
53
- }
54
-
55
-
56
- $response = wp_remote_get( $json_url, array('timeout' => 120 ) );
57
- $json = '';
58
-
59
- if( is_array($response) ) {
60
- if( isset( $response['body'] ) && ! empty( $response['body'] ) ){
61
- $json = json_decode( $response['body'] );
62
- }
63
- }
64
-
65
- if( is_wp_error( $response ) ){
66
- wp_die( $response->get_error_message() );
67
- }
68
-
69
- if( ! empty( $json ) ){
70
-
71
- remove_action('um_after_new_user_register', 'um_after_new_user_register', 10, 2);
72
-
73
- $failed_dummies = 0;
74
- $default_role = um_get_option("default_role");
75
-
76
- foreach( $json->results as $dummy ){
77
-
78
- if( isset( $_GET['password'] ) && ! empty( $_GET['password'] ) ){
79
- $password = $_GET['password'];
80
- }else{
81
- $password = wp_generate_password( 8, false );
82
- }
83
-
84
- $site_url = @$_SERVER['SERVER_NAME'];
85
- $random_generate = wp_generate_password( 4, false );
86
-
87
- if( username_exists( $dummy->login->username ) ){
88
- $dummy->login->username = $dummy->login->username.'_'. $random_generate;
89
- }
90
-
91
- $dummy->login->email = $dummy->login->username."_dummy@{$site_url}";
92
-
93
- if( email_exists( $dummy->login->email ) ){
94
- $dummy->login->email = $dummy->login->username."_dummy_{$random_generate}@{$site_url}";
95
- }
96
-
97
- $userdata = array(
98
- 'display_name' => ucfirst( $dummy->name->first )." ".ucfirst( $dummy->name->last ),
99
- 'first_name' => ucfirst( $dummy->name->first ),
100
- 'last_name' => ucfirst( $dummy->name->last ),
101
- 'user_email' => $dummy->login->email,
102
- 'user_login' => $dummy->login->username,
103
- 'user_pass' => $password,
104
- );
105
-
106
- $user_id = wp_insert_user( $userdata );
107
-
108
- if( is_wp_error( $user_id ) ){
109
- $failed_dummies++;
110
- }
111
-
112
- $usermeta = array(
113
- 'synced_profile_photo' => $dummy->picture->large,
114
- 'gender' => ucfirst($dummy->gender),
115
- 'birth_date' => date("Y/m/d", strtotime( $dummy->dob) ),
116
- '_um_last_login' => date("Y/m/d", strtotime( $dummy->registered ) ),
117
- 'mobile_number' => $dummy->cell,
118
- 'phone_number' => $dummy->phone,
119
- 'synced_gravatar_hashed_id' => md5( strtolower( trim( $dummy->email ) ) ),
120
- 'account_status' => 'approved',
121
- '_um_profile_dummy' => true,
122
- 'role' => isset( $default_role ) ? $default_role: 'member'
123
- );
124
-
125
- if( isset( $_GET['add_cover_photo'] ) && $_GET['add_cover_photo'] == 1 ){
126
-
127
- $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
128
- $color = $rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
129
-
130
- $usermeta['synced_cover_photo'] = 'http://placehold.it/650x350/'.$color.'/'.$color;
131
-
132
- }
133
-
134
- foreach ( $usermeta as $key => $value ) {
135
- update_user_meta( $user_id, $key, $value );
136
- }
137
-
138
-
139
- }
140
- wp_redirect( admin_url("admin.php?page=generate_random_users") ); exit;
141
- }
142
-
143
- break;
144
-
145
- case 'remove_random_users':
146
-
147
- $dummies = new WP_User_Query(
148
- array(
149
- 'fields' => array('ID'),
150
- 'meta_key' => '_um_profile_dummy',
151
- 'meta_value' => true,
152
- 'meta_compare' => '='
153
- )
154
- );
155
-
156
- if( $dummies->total_users > 0 ){
157
- foreach ( $dummies->get_results() as $dummy ) {
158
-
159
- if( isset( $dummy->ID ) ){
160
- wp_delete_user( $dummy->ID );
161
- }
162
-
163
- }
164
- }
165
-
166
- delete_option('um_generated_dumies');
167
- wp_redirect( admin_url("admin.php?page=generate_random_users") );
168
- exit;
169
-
170
- break;
171
-
172
- default:
173
-
174
- break;
175
- }
176
-
177
- }
178
-
179
- function admin_init() {
180
- if ( isset( $_REQUEST['um-addon-hook'] ) ) {
181
- $hook = $_REQUEST['um-addon-hook'];
182
- do_action("um_admin_addon_hook", $hook );
183
- }
184
- }
185
-
186
- function content() {
187
-
188
- ?>
189
-
190
- <div class="wrap">
191
-
192
- <h2>Ultimate Member <sup style="font-size:15px"><?php echo ultimatemember_version; ?></sup></h2>
193
-
194
- <h3><?php echo $this->addon[0]; ?></h3>
195
-
196
- <?php if ( isset( $this->content ) ) {
197
- echo $this->content;
198
- } else { ?>
199
-
200
- <p>This tool allows you to add dummies as Ultimate Member users. </p>
201
- <?php
202
- $dummies = new WP_User_Query(
203
- array(
204
- 'fields' => array('ID'),
205
- 'meta_key' => '_um_profile_dummy',
206
- 'meta_value' => true,
207
- 'meta_compare' => '='
208
- )
209
- );
210
- ?>
211
- <?php if( $dummies->total_users > 0 ): ?>
212
- <form method="get">
213
- <p>
214
- &nbsp;<input type="submit" class="button button-secondary" value="Remove Generated Dummies (<?php echo $dummies->total_users;?>)"/>
215
- <input type="hidden" name="um-addon-hook" value="remove_random_users"/>
216
- <input type="hidden" name="page" value="generate_random_users"/>
217
- </form>
218
- <br/>
219
- <?php endif; ?>
220
- <form method="get">
221
- <label for="total_users">How many dummies? <br/><input type="text" name="total_users" value="30" /> <br/><br/>
222
- <label for="gender">Gender:</label> <br/>
223
- <label><input type='radio' name="gender" value="male"/> Male</label> <br/>
224
- <label><input type='radio' name="gender" value="female"/> Female</label> <br/>
225
- <label><input type='radio' checked="checked" name="gender" value="both"/> Both</label>
226
- <br/><br/>
227
- <label for="nationality">Available Nationalities:</label><br/>
228
- <select style="width:150px" name="nationality[]" multiple>
229
- <?php
230
- $nationality = array( 'AU', 'BR', 'CA', 'CH', 'DE', 'DK', 'ES', 'FI', 'FR', 'GB', 'IE', 'IR', 'NL', 'NZ', 'TR', 'US' );
231
- foreach ($nationality as $code ) {
232
- $value = strtolower($code);
233
- echo "<option value='".$value."'/> ".$code."</option>";
234
- }
235
- ?>
236
- </select>
237
- <br/><br/>
238
- <label for="add_cover_photo"><input type="checkbox" name="add_cover_photo" value="1" />
239
- Add cover photos?</label>
240
- <br/><small>Generates random colored cover photos</small>
241
- <br/><br/>
242
- <label for="password">
243
- Account Passwords:
244
- <input type="password" name="password" />
245
- <br/><small>if you leave this blank, it will generate random strings password</small>
246
- </label>
247
- <br/>
248
- <input type="submit" class="button button-primary" value="Start Generating Dummies"/>
249
- <input type="hidden" name="um-addon-hook" value="generate_random_users"/>
250
-
251
- <?php } ?>
252
- </form>
253
-
254
- </div><div class="clear"></div>
255
-
256
- <?php
257
-
258
- }
259
- }
260
-
261
- $UM_ADDON_generate_random_users = new UM_ADDON_generate_random_users ();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/gravatar_transfer.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
-
3
- class UM_ADDON_gravatar_transfer {
4
-
5
- function __construct() {
6
-
7
- add_action('admin_menu', array(&$this, 'admin_menu'), 1001);
8
-
9
- add_action('admin_init', array(&$this, 'admin_init'), 1);
10
-
11
- add_action('um_admin_addon_hook', array(&$this, 'um_admin_addon_hook') );
12
-
13
- }
14
-
15
- function gravatar_hash(){
16
- global $wpdb;
17
- $wpdb->query('DELETE FROM '.$wpdb->usermeta.' WHERE meta_key = "synced_gravatar_hashed_id" ');
18
-
19
- $wpdb->query('INSERT INTO '.$wpdb->usermeta.'(user_id, meta_key, meta_value)
20
- SELECT ID, "synced_gravatar_hashed_id", MD5( LOWER( TRIM(user_email) ) ) FROM '.$wpdb->users.' ');
21
-
22
- return true;
23
- }
24
-
25
- function admin_menu() {
26
-
27
- global $ultimatemember;
28
- $this->addon = $ultimatemember->addons['gravatar_transfer'];
29
- add_submenu_page('ultimatemember', $this->addon[0], $this->addon[0], 'manage_options', 'gravatar_transfer', array(&$this, 'content') );
30
-
31
- }
32
-
33
- function um_admin_addon_hook( $hook ) {
34
- global $ultimatemember;
35
- switch( $hook ) {
36
- case 'gravatar_transfer':
37
- if( $this->gravatar_hash() ){
38
- $this->content = '<p><strong>Done. Process completed!</p>';
39
- $result = count_users();
40
- $this->content .= $result['total_users'] . ' user(s) changed.</strong></p>';
41
- }
42
- break;
43
- }
44
- }
45
-
46
- function admin_init() {
47
- if ( isset( $_REQUEST['um-addon-hook'] ) ) {
48
- $hook = $_REQUEST['um-addon-hook'];
49
- do_action("um_admin_addon_hook", $hook);
50
- }
51
- }
52
-
53
- function content() {
54
-
55
- $this->process_link = add_query_arg('um-addon-hook','gravatar_transfer');
56
-
57
- ?>
58
-
59
- <div class="wrap">
60
-
61
- <h2>Ultimate Member <sup style="font-size:15px"><?php echo ultimatemember_version; ?></sup></h2>
62
-
63
- <h3><?php echo $this->addon[0]; ?></h3>
64
-
65
- <?php if ( isset( $this->content ) ) {
66
- echo $this->content;
67
- } else { ?>
68
-
69
- <p>This tool allows you to add gravatars to Ultimate Member users. This can help you to link gravatar photos to user accounts with their email address.</p>
70
- <p>Depending on your users database, this could take a few moments. To start the process, click the following button.</p>
71
-
72
- <p><a href="<?php echo $this->process_link; ?>" class="button button-primary">Start adding gravatars</a></p>
73
-
74
- <?php } ?>
75
-
76
- </div><div class="clear"></div>
77
-
78
- <?php
79
-
80
- }
81
- }
82
-
83
- $UM_ADDON_gravatar_transfer = new UM_ADDON_gravatar_transfer();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/install_info.php DELETED
@@ -1,419 +0,0 @@
1
- <?php
2
-
3
- class UM_ADDON_install_info {
4
-
5
- function __construct() {
6
-
7
- add_action('admin_menu', array(&$this, 'admin_menu'), 1001);
8
-
9
- add_action('admin_init', array(&$this, 'admin_init'), 1);
10
-
11
- add_action('um_admin_addon_hook', array(&$this, 'um_admin_addon_hook') );
12
-
13
- }
14
-
15
-
16
- function admin_menu() {
17
-
18
- global $ultimatemember;
19
- $this->addon = $ultimatemember->addons['install_info'];
20
- add_submenu_page('ultimatemember', "System Info","System Info", 'manage_options', 'um_install_info', array(&$this, 'content') );
21
-
22
- }
23
-
24
- function um_admin_addon_hook( $hook ) {
25
- global $ultimatemember;
26
-
27
- switch ( $hook ) {
28
-
29
- case 'download_install_info':
30
-
31
- nocache_headers();
32
-
33
- header( "Content-type: text/plain" );
34
- header( 'Content-Disposition: attachment; filename="ultimatemember-install-info.txt"' );
35
-
36
- echo wp_strip_all_tags( $_POST['um-install-info'] );
37
- exit;
38
-
39
- break;
40
-
41
- default:
42
-
43
- break;
44
- }
45
-
46
- }
47
-
48
- function admin_init() {
49
- if ( isset( $_REQUEST['um-addon-hook'] ) ) {
50
- $hook = $_REQUEST['um-addon-hook'];
51
- do_action("um_admin_addon_hook", $hook );
52
- }
53
- }
54
-
55
- function content() {
56
- global $wpdb, $ultimatemember;
57
-
58
- if( !class_exists( 'Browser' ) )
59
- require_once um_path . 'core/lib/browser.php';
60
-
61
- // Detect browser
62
- $browser = new Browser();
63
-
64
- // Get theme info
65
- $theme_data = wp_get_theme();
66
- $theme = $theme_data->Name . ' ' . $theme_data->Version;
67
-
68
- // Identify Hosting Provider
69
- $host = um_get_host();
70
-
71
- um_fetch_user( get_current_user_id() );
72
- ?>
73
-
74
- <div class="wrap">
75
-
76
- <h2>Ultimate Member</h2>
77
-
78
- <h3><?php echo $this->addon[0]; ?></h3>
79
-
80
- <?php if ( isset( $this->content ) ) {
81
- echo $this->content;
82
- } else { ?>
83
-
84
- <form action="<?php echo esc_url( admin_url( 'admin.php?page=um_install_info' ) ); ?>" method="post" dir="ltr">
85
- <textarea style="width:100%; height:400px;" readonly="readonly" onclick="this.focus();this.select()" id="install-info-textarea" name="um-install-info" title="<?php _e( 'To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C (Mac).', 'edd' ); ?>">
86
- ### Begin Install Info ###
87
-
88
- ## Please include this information when posting support requests ##
89
-
90
- <?php do_action( 'um_install_info_before' ); ?>
91
-
92
- --- Site Info ---
93
-
94
- Site URL: <?php echo site_url() . "\n"; ?>
95
- Home URL: <?php echo home_url() . "\n"; ?>
96
- Multisite: <?php echo is_multisite() ? 'Yes' . "\n" : 'No' . "\n" ?>
97
-
98
- --- Hosting Provider ---
99
-
100
- <?php if( $host ) : ?>
101
- Host: <?php echo $host . "\n"; ?>
102
- <?php endif; ?>
103
-
104
- --- User Browser ---
105
-
106
- <?php echo $browser ; ?>
107
-
108
- ---- Current User Details --
109
-
110
- <?php $user = wp_get_current_user(); ?>
111
- UM Role: <?php echo um_user('role'). "\n"; ?>
112
- WP Role: <?php echo $user->roles ? $user->roles[0] : false; echo "\n"; ?>
113
-
114
- --- WordPress Configurations ---
115
-
116
- Version: <?php echo get_bloginfo( 'version' ) . "\n"; ?>
117
- Language: <?php echo get_locale()."\n"; ?>
118
- Permalink Structure: <?php echo get_option( 'permalink_structure' ) . "\n"; ?>
119
- Active Theme: <?php echo $theme . "\n"; ?>
120
- <?php $show_on_front = get_option( 'show_on_front' ); ?>
121
- <?php if( $show_on_front == "posts" ): ?>
122
- Show On Front: <?php echo get_option( 'show_on_front' ) . "/static\n" ?>
123
- <?php elseif( $show_on_front == "page" ): ?>
124
- Page On Front: <?php $id = get_option( 'page_on_front' ); echo get_the_title( $id ) . ' (#' . $id . ')' . "\n" ?>
125
- Page For Posts: <?php $id = get_option( 'page_for_posts' ); echo get_the_title( $id ) . ' (#' . $id . ')' . "\n" ?>
126
- <?php endif; ?>
127
- ABSPATH: <?php echo ABSPATH."\n"; ?>
128
- <?php $wp_count_posts = wp_count_posts(); ?>
129
- All Posts/Pages: <?php echo array_sum((array)$wp_count_posts)."\n";?>
130
- <?php
131
- $request['cmd'] = '_notify-validate';
132
-
133
- $params = array(
134
- 'sslverify' => false,
135
- 'timeout' => 60,
136
- 'user-agent' => 'UltimateMember/' . ultimatemember_version,
137
- 'body' => $request
138
- );
139
-
140
- $response = wp_remote_post( 'https://www.paypal.com/cgi-bin/webscr', $params );
141
-
142
- if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
143
- $WP_REMOTE_POST = 'wp_remote_post() works' . "\n";
144
- } else {
145
- $WP_REMOTE_POST = 'wp_remote_post() does not work' . "\n";
146
- }
147
- ?>
148
- WP Remote Post: <?php echo $WP_REMOTE_POST; ?>
149
- WP_DEBUG: <?php echo defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' . "\n" : 'Disabled' . "\n" : 'Not set' . "\n" ?>
150
- WP Table Prefix: <?php echo "Length: ". strlen( $wpdb->prefix ); echo ", Status:"; if ( strlen( $wpdb->prefix )>16 ) {echo " ERROR: Too Long";} else {echo " Acceptable";} echo "\n"; ?>
151
- Memory Limit: <?php echo ( um_let_to_num( WP_MEMORY_LIMIT )/( 1024 ) )."MB"; ?><?php echo "\n"; ?>
152
-
153
- --- UM Configurations ---
154
-
155
- Version: <?php echo ultimatemember_version . "\n"; ?>
156
- Upgraded From: <?php echo get_option( 'um_version_upgraded_from', 'None' ) . "\n"; ?>
157
- Current URL Method: <?php echo um_get_option( 'current_url_method' ). "\n"; ?>
158
- Cache User Profile: <?php if( um_get_option( 'um_profile_object_cache_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
159
- Generate Slugs on Directories: <?php if( um_get_option( 'um_generate_slug_in_directory' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
160
- Rewrite Rules: <?php if( um_get_option( 'um_flush_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
161
- Force UTF-8 Encoding: <?php if( um_get_option( 'um_force_utf8_strings' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
162
- Time Check Security: <?php if( um_get_option( 'enable_timebot' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
163
- JS/CSS Compression: <?php if( um_get_option( 'disable_minify' ) == 0 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
164
- <?php if( is_multisite() ): ?>
165
- Network Structure: <?php echo um_get_option( 'network_permalink_structure' ). "\n"; ?>
166
- <?php endif; ?>
167
- Nav Menu Settings: <?php if( um_get_option( 'disable_menu' ) == 0 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
168
- Port Forwarding in URL: <?php if( um_get_option( 'um_port_forwarding_url' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
169
- Exclude CSS/JS on Home: <?php if( um_get_option( 'js_css_exlcude_home' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
170
-
171
- --- UM Pages Configuration ---
172
-
173
- <?php do_action("um_install_info_before_page_config") ?>
174
- User: <?php echo get_permalink( um_get_option('core_user') ) . "\n"; ?>
175
- Account: <?php echo get_permalink( um_get_option('core_account') ) . "\n"; ?>
176
- Members: <?php echo get_permalink( um_get_option('core_members') ) . "\n"; ?>
177
- Register: <?php echo get_permalink( um_get_option('core_register') ) . "\n"; ?>
178
- Login: <?php echo get_permalink( um_get_option('core_login') ) . "\n"; ?>
179
- Logout: <?php echo get_permalink( um_get_option('core_logout') ) . "\n"; ?>
180
- Password Reset: <?php echo get_permalink( um_get_option('core_password-reset') ) . "\n"; ?>
181
- <?php do_action("um_install_info_after_page_config") ?>
182
-
183
- -- UM Users Configuration ---
184
-
185
- Default New User Role: <?php echo um_get_option('default_role') . "\n"; ?>
186
- Profile Permalink Base: <?php echo um_get_option('permalink_base') . "\n"; ?>
187
- User Display Name: <?php echo um_get_option('display_name') . "\n"; ?>
188
- Force Name to Uppercase: <?php echo $this->value( um_get_option('force_display_name_capitlized'), 'yesno', true ); ?>
189
- Redirect author to profile: <?php echo $this->value( um_get_option('author_redirect'), 'yesno', true ); ?>
190
- Enable Members Directory: <?php echo $this->value( um_get_option('members_page'), 'yesno', true ); ?>
191
- Use Gravatars: <?php echo $this->value( um_get_option('use_gravatars'), 'yesno', true ); ?>
192
- <?php if( um_get_option('use_gravatars') ): ?>Gravatar builtin image: <?php echo um_get_option('use_um_gravatar_default_builtin_image') . "\n"; ?>
193
- UM Avatar as blank Gravatar: <?php echo $this->value( um_get_option('use_um_gravatar_default_image'), 'yesno', true ); ?><?php endif; ?>
194
- Require a strong password: <?php echo $this->value( um_get_option('reset_require_strongpass'), 'onoff', true ); ?>
195
- Editable primary email field in profile view: <?php echo $this->value( um_get_option('editable_primary_email_in_profile'), 'onoff', true ); ?>
196
-
197
- -- UM Access Configuration ---
198
-
199
- Panic Key: <?php echo um_get_option('panic_key') . "\n"; ?>
200
- Global Site Access: <?php $arr = array('Site accessible to Everyone','','Site accessible to Logged In Users'); echo $arr[ intval( um_get_option('accessible') ) ] . "\n"; ?>
201
- <?php if( um_get_option('accessible') == 2 ):?>
202
- Custom Redirect URL: <?php echo um_get_option('access_redirect')."\n";?>
203
- Exclude the following URLs:<?php echo "\t\t\t\t".implode("\t\n\t\t\t\t\t\t\t\t\t\t",um_get_option('access_exclude_uris') )."\n";?><?php endif;?>
204
- Backend Login Screen for Guests: <?php echo $this->value( um_get_option('wpadmin_login'), 'yesno', true ); ?>
205
- <?php if( ! um_get_option('wpadmin_login') ):?>Redirect to alternative login page: <?php if( um_get_option('wpadmin_login_redirect') == 'um_login_page' ){ echo um_get_core_page('login')."\n"; }else{ echo um_get_option('wpadmin_login_redirect_url')."\n"; }?><?php endif; ?>
206
- Backend Register Screen for Guests: <?php echo $this->value( um_get_option('wpadmin_register'), 'yesno', true ); ?>
207
- <?php if( ! um_get_option('wpadmin_register') ):?>Redirect to alternative register page: <?php if( um_get_option('wpadmin_register_redirect') == 'um_register_page' ){ echo um_get_core_page('register')."\n"; }else{ echo um_get_option('wpadmin_register_redirect_url')."\n"; }?><?php endif; ?>
208
- Access Control widget for Admins only: <?php echo $this->value( um_get_option('access_widget_admin_only'), 'yesno', true ); ?>
209
- Enable the Reset Password Limit: <?php echo $this->value( um_get_option('enable_reset_password_limit'), 'yesno', true ); ?>
210
- <?php if( um_get_option('enable_reset_password_limit') ) {
211
- echo "Reset Password Limit:\t\t\t\t\t\t".um_get_option('reset_password_limit_number')."\n";
212
- echo "Disable Reset Password Limit for Admins:\t".$this->value( um_get_option('disable_admin_reset_password_limit'), 'yesno', true );
213
- } ?>
214
- <?php $wpadmin_allow_ips = um_get_option('wpadmin_allow_ips'); if( ! empty( $wpadmin_allow_ips ) ){ ?>
215
- Whitelisted Backend IPs: <?php echo count( explode("\n",trim(um_get_option('wpadmin_allow_ips') ) ) )."\n"; ?>
216
- <?php }?>
217
- <?php $blocked_ips = um_get_option('blocked_ips'); if( ! empty( $blocked_ips ) ){ ?>
218
- Blocked IP Addresses: <?php echo count( explode("\n",um_get_option('blocked_ips') ) )."\n"; ?>
219
- <?php }?>
220
- <?php $blocked_emails = um_get_option('blocked_emails'); if( ! empty( $blocked_emails ) ){ ?>
221
- Blocked Email Addresses: <?php echo count( explode("\n",um_get_option('blocked_emails') ) )."\n"; ?>
222
- <?php }?>
223
- <?php $blocked_words = um_get_option('blocked_words'); if( ! empty( $blocked_words ) ){ ?>
224
- Blacklist Words: <?php echo count( explode("\n",um_get_option('blocked_words') ) )."\n"; ?>
225
- <?php }?>
226
-
227
-
228
- --- UM Email Configurations --
229
-
230
- Mail appears from: <?php $mail_from = um_get_option('mail_from'); if( ! empty( $mail_from ) ){echo um_get_option('mail_from');}else{echo "-";}; echo "\n";?>
231
- Mail appears from address: <?php $mail_from_addr = um_get_option('mail_from_addr'); if( ! empty( $mail_from_addr ) ){echo um_get_option('mail_from_addr');}else{echo "-";}; echo "\n";?>
232
- Use HTML for E-mails: <?php echo $this->value( um_get_option('email_html'), 'yesno', true ); ?>
233
- Account Welcome Email: <?php echo $this->value( um_get_option('welcome_email_on'), 'yesno', true ); ?>
234
- Account Activation Email: <?php echo $this->value( um_get_option('checkmail_email_on'), 'yesno', true ); ?>
235
- Pending Review Email: <?php echo $this->value( um_get_option('pending_email_on'), 'yesno', true ); ?>
236
- Account Approved Email: <?php echo $this->value( um_get_option('approved_email_on'), 'yesno', true ); ?>
237
- Account Rejected Email: <?php echo $this->value( um_get_option('rejected_email_on'), 'yesno', true ); ?>
238
- Account Deactivated Email: <?php echo $this->value( um_get_option('inactive_email_on'), 'yesno', true ); ?>
239
- Account Deleted Email: <?php echo $this->value( um_get_option('deletion_email_on'), 'yesno', true ); ?>
240
- Password Reset Email: <?php echo $this->value( um_get_option('resetpw_email_on'), 'yesno', true ); ?>
241
- Password Changed Email: <?php echo $this->value( um_get_option('changedpw_email_on'), 'yesno', true ); ?>
242
-
243
-
244
- --- UM Total Users ---
245
-
246
- <?php
247
-
248
- $result = count_users();
249
- echo 'All Users('.$result['total_users'].")\n";
250
- foreach($result['avail_roles'] as $role => $count){
251
- echo $role."(".$count.")\n";
252
- }
253
- ?>
254
-
255
-
256
- --- UM Roles ---
257
-
258
- <?php
259
-
260
- foreach( $ultimatemember->query->get_roles() as $role_id => $role ) {
261
- echo $role." ({$role_id})\n";
262
- }
263
-
264
- ?>
265
-
266
-
267
- --- UM Custom Templates ---
268
-
269
- <?php
270
- // Show templates that have been copied to the theme's edd_templates dir
271
-
272
- $dir = get_stylesheet_directory() . '/ultimate-member/templates/*.php';
273
- if ( ! empty( $dir ) ){
274
- $found = glob( $dir );
275
- if( ! empty( $found ) ){
276
- foreach ( glob( $dir ) as $file ) {
277
- echo "File: " . $file . "\n";
278
- }
279
- }else {
280
- echo 'N/A'."\n";
281
- }
282
- }
283
- echo "\n\n";
284
-
285
- $dir = get_stylesheet_directory() . '/ultimate-member/templates/emails/*.html';
286
- echo "-- UM Email HTML Templates -- \n\n";
287
-
288
- if ( ! empty( $dir ) ){
289
- $found = glob( $dir );
290
- if( ! empty( $found ) ){
291
- foreach ( glob( $dir ) as $file ) {
292
- echo "File: ". $file . "\n";
293
- }
294
- }else {
295
- echo 'N/A'."\n";
296
- }
297
- }
298
-
299
- ?>
300
-
301
- --- Web Server Configurations ---
302
-
303
- PHP Version: <?php echo PHP_VERSION . "\n"; ?>
304
- MySQL Version: <?php echo $wpdb->db_version() . "\n"; ?>
305
- Web Server Info: <?php echo $_SERVER['SERVER_SOFTWARE'] . "\n"; ?>
306
-
307
- --- PHP Configurations --
308
-
309
- PHP Memory Limit: <?php echo ini_get( 'memory_limit' ) . "\n"; ?>
310
- PHP Upload Max Size: <?php echo ini_get( 'upload_max_filesize' ) . "\n"; ?>
311
- PHP Post Max Size: <?php echo ini_get( 'post_max_size' ) . "\n"; ?>
312
- PHP Upload Max Filesize: <?php echo ini_get( 'upload_max_filesize' ) . "\n"; ?>
313
- PHP Time Limit: <?php echo ini_get( 'max_execution_time' ) . "\n"; ?>
314
- PHP Max Input Vars: <?php echo ini_get( 'max_input_vars' ) . "\n"; ?>
315
- PHP Arg Separator: <?php echo ini_get( 'arg_separator.output' ) . "\n"; ?>
316
- PHP Allow URL File Open: <?php echo ini_get( 'allow_url_fopen' ) ? "Yes\n" : "No\n"; ?>
317
-
318
-
319
- --- Web Server Extensions/Modules ---
320
-
321
- DISPLAY ERRORS: <?php echo ( ini_get( 'display_errors' ) ) ? 'On (' . ini_get( 'display_errors' ) . ')' : 'N/A'; ?><?php echo "\n"; ?>
322
- FSOCKOPEN: <?php echo ( function_exists( 'fsockopen' ) ) ? 'Your server supports fsockopen.' : 'Your server does not support fsockopen.'; ?><?php echo "\n"; ?>
323
- cURL: <?php echo ( function_exists( 'curl_init' ) ) ? 'Your server supports cURL.' : 'Your server does not support cURL.'; ?><?php echo "\n"; ?>
324
- SOAP Client: <?php echo ( class_exists( 'SoapClient' ) ) ? 'Your server has the SOAP Client enabled.' : 'Your server does not have the SOAP Client enabled.'; ?><?php echo "\n"; ?>
325
- SUHOSIN: <?php echo ( extension_loaded( 'suhosin' ) ) ? 'Your server has SUHOSIN installed.' : 'Your server does not have SUHOSIN installed.'; ?><?php echo "\n"; ?>
326
- GD Library: <?php echo ( extension_loaded( 'gd' ) && function_exists('gd_info') ) ? 'PHP GD library is installed on your web server.' : 'PHP GD library is NOT installed on your web server.'; ?><?php echo "\n"; ?>
327
- Mail: <?php echo ( function_exists('mail') ) ? 'PHP mail function exist on your web server.' : 'PHP mail function doesn\'t exist on your web server.'; ?><?php echo "\n"; ?>
328
-
329
-
330
- --- Session Configurations ---
331
-
332
- Session: <?php echo isset( $_SESSION ) ? 'Enabled' : 'Disabled'; ?><?php echo "\n"; ?>
333
- Session Name: <?php echo esc_html( ini_get( 'session.name' ) ); ?><?php echo "\n"; ?>
334
- Cookie Path: <?php echo esc_html( ini_get( 'session.cookie_path' ) ); ?><?php echo "\n"; ?>
335
- Save Path: <?php echo esc_html( ini_get( 'session.save_path' ) ); ?><?php echo "\n"; ?>
336
- Use Cookies: <?php echo ini_get( 'session.use_cookies' ) ? 'On' : 'Off'; ?><?php echo "\n"; ?>
337
- Use Only Cookies: <?php echo ini_get( 'session.use_only_cookies' ) ? 'On' : 'Off'; ?><?php echo "\n"; ?>
338
-
339
-
340
-
341
- --- WordPress Active Plugins ---
342
-
343
- <?php
344
- $plugins = get_plugins();
345
- $active_plugins = get_option( 'active_plugins', array() );
346
-
347
- foreach ( $plugins as $plugin_path => $plugin ) {
348
- // If the plugin isn't active, don't show it.
349
- if ( ! in_array( $plugin_path, $active_plugins ) )
350
- continue;
351
-
352
- echo $plugin['Name'] . ': ' . $plugin['Version'] ."\n";
353
- }
354
-
355
- if ( is_multisite() ) :
356
- ?>
357
-
358
- --- WordPress Network Active Plugins ---
359
-
360
- <?php
361
- $plugins = wp_get_active_network_plugins();
362
- $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
363
-
364
- foreach ( $plugins as $plugin_path ) {
365
- $plugin_base = plugin_basename( $plugin_path );
366
-
367
- // If the plugin isn't active, don't show it.
368
- if ( ! array_key_exists( $plugin_base, $active_plugins ) )
369
- continue;
370
-
371
- $plugin = get_plugin_data( $plugin_path );
372
-
373
- echo $plugin['Name'] . ' :' . $plugin['Version'] ."\n";
374
- }
375
-
376
- endif;
377
- ?>
378
- <?php
379
- do_action( 'um_install_info_after' );
380
- ?>
381
-
382
-
383
-
384
-
385
- ### End Install Info ###</textarea>
386
- <p class="submit">
387
- <input type="hidden" name="um-addon-hook" value="download_install_info" />
388
- <?php submit_button( 'Download Install Info File', 'primary', 'download_install_info', false ); ?>
389
- </p>
390
- </form>
391
-
392
- <?php } ?>
393
-
394
- <?php
395
-
396
- }
397
-
398
- function value( $raw_value = '', $type = 'yesno', $default = '', $default_negate = '' ){
399
-
400
- if( $type == 'yesno' ){
401
- if( $default == $raw_value ){
402
- $raw_value = "Yes";
403
- }else{
404
- $raw_value = "No";
405
- }
406
- }else if( $type == 'onoff' ){
407
- if( $default == $raw_value ){
408
- $raw_value = "On";
409
- }else{
410
- $raw_value = "Off";
411
- }
412
- }
413
-
414
- return $raw_value."\n";
415
- }
416
-
417
- }
418
-
419
- $UM_ADDON_install_info = new UM_ADDON_install_info();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/css/um-admin-global.css DELETED
@@ -1,90 +0,0 @@
1
- .um-admin-notice {
2
- border-color: #3ba1da !important;
3
- color: #555;
4
- }
5
-
6
- .um-admin-notice a.button-primary {
7
- background-color: #3ba1da !important;
8
- border-color: #3ba1da !important;
9
- }
10
-
11
- .um-admin-notice a.button-primary:hover {
12
- background-color: #2295d8 !important;
13
- border-color: #2295d8 !important;
14
- }
15
-
16
- .um-admin-notice a.button-secondary {opacity: 0.7}
17
- .um-admin-notice a.button-secondary:hover {opacity: 0.9}
18
- .um-admin-notice a {text-decoration: none;color: #3ba1da}
19
- .um-admin-notice a:hover {color: #44b0ec}
20
-
21
- .um-filter {
22
- padding: 12px;
23
- border-color: #ddd !important;
24
- margin: 20px 0 0 0 !important;
25
- font-size: 14px;
26
- line-height: 24px;
27
- }
28
-
29
- /*
30
- - General metabox styling
31
- */
32
-
33
- #um-admin-access-settings h3 {
34
- padding: 10px 20px 10px 60px;
35
- color: #fff;
36
- background: #3ba1da url(../img/logo-small.png) no-repeat 12px center;
37
- font-weight: bold;
38
- font-size: 14px !important;
39
- -webkit-font-smoothing: antialiased !important;
40
- -moz-osx-font-smoothing: grayscale !important;
41
- }
42
-
43
- #um-admin-access-settings h4 { margin: 10px 0 4px 0!important}
44
-
45
- #um-admin-access-settings div.handlediv {
46
- color: #fff !important;
47
- -webkit-font-smoothing: antialiased !important;
48
- -moz-osx-font-smoothing: grayscale !important;
49
- }
50
-
51
- #um-admin-access-settings p {font-size: 13px}
52
-
53
- #um-admin-access-settings input[type=text] {font-size: 13px}
54
-
55
- /*
56
- - Nav Menu
57
- */
58
-
59
- .um-nav-edit * {
60
- -webkit-font-smoothing: antialiased !important;
61
- -moz-osx-font-smoothing: grayscale !important;
62
- }
63
-
64
- .um-nav-edit-h2 {
65
- padding: 10px 20px 10px 60px;
66
- margin: 14px 12px 0 0;
67
- border-radius: 3px;
68
- color: #fff;
69
- background: #3ba1da url(../img/logo-small.png) no-repeat 12px center;
70
- font-weight: bold;
71
- }
72
-
73
- .um-nav-mode {margin-top:10px}
74
- .um-nav-roles {display: none;margin-top:5px}
75
-
76
- /*
77
- - jQuery Tooltips
78
- */
79
-
80
- .um-admin-tip {
81
- margin: 0 0 0 2px;
82
- color: #3ba1da !important;
83
- vertical-align: middle;
84
- position: relative;
85
- top: -3px;
86
- opacity: 0.8;
87
- }
88
- .um-admin-tip.n {margin-left: 5px}
89
- .um-admin-tip i {cursor: pointer; vertical-align: middle; font-size: 20px; line-height: 20px;color: #3ba1da !important;}
90
- a.um-delete{ color: #a00; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/css/um-admin-redux.css DELETED
@@ -1,227 +0,0 @@
1
- /*
2
- - ReduxPanel
3
- */
4
-
5
- .redux-container {
6
- border-radius: 0 !important;
7
- -webkit-font-smoothing: antialiased;
8
- -moz-osx-font-smoothing: grayscale;
9
- background: none !important;
10
- box-shadow: none !important;
11
- border: 0 !important;
12
- }
13
-
14
- .redux-container #import_export_default_section_group h4 {
15
- margin: 0 0 12px 0 !important;
16
- }
17
-
18
- .redux-container #import_export_default_section_group .hr {
19
- height: 4px !important;
20
- }
21
-
22
- .redux-sidebar .redux-group-menu li.active a, .redux-sidebar .redux-group-menu li.active a:hover, .redux-sidebar .redux-group-menu li.activeChild a, .redux-sidebar .redux-group-menu li.activeChild a:hover {
23
- background: transparent;
24
- }
25
-
26
- .redux-container #info_bar {
27
- display: none;
28
- }
29
-
30
- .redux-sidebar .redux-group-menu {
31
- font-size: 14px;
32
- }
33
-
34
- .redux-sidebar .redux-group-menu li.active a, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild a {
35
- color: #3ba1da !important;
36
- background: #e5e5e5 !important;
37
- }
38
-
39
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a {
40
- color: #fff !important;
41
- }
42
-
43
- .redux-container .redux_field_th {
44
- font-size: 14px;
45
- font-weight: 600;
46
- color: #222;
47
- }
48
-
49
- .redux-main {
50
- background: none !important;
51
- box-shadow: none !important;
52
- border-left: 0 !important;
53
- padding: 0 25px;
54
- }
55
-
56
- .redux-container-sortable .checkbox-container input {
57
- display: none;
58
- }
59
-
60
- #redux-header {
61
- background: transparent !important;
62
- border: none !important;
63
- padding: 0 !important;
64
- }
65
-
66
- .redux-container #redux-header .display_header {
67
- margin: 0 0 10px 0 !important;
68
- }
69
-
70
- #redux-header .display_header span {
71
- font-size: 14px;
72
- position: relative;
73
- font-weight: 400;
74
- background: #3ba1da;
75
- color: #fff !important;
76
- padding: 2px 4px !important;
77
- border-radius: 3px;
78
- position: relative;
79
- top: -3px;
80
- left: 0;
81
- }
82
-
83
- #redux-header h2 {
84
- color: #222;
85
- -webkit-font-smoothing: antialiased;
86
- -moz-osx-font-smoothing: grayscale;
87
- font-size: 23px;
88
- font-weight: 400;
89
- padding: 1px 15px 4px 0px;
90
- line-height: 29px;
91
- margin: 5px 0 0 0;
92
- }
93
-
94
- #redux-share {margin-top: 11px !important}
95
-
96
- #redux-share a {
97
- margin: 0 15px 0 0 !important;
98
- text-decoration: none !important;
99
- color: #777 !important;
100
- font-size: 22px !important;
101
- }
102
- #redux-share a:hover {color: #3ba1da !important}
103
-
104
- .redux-main .form-table tr {
105
- border-bottom: 0;
106
- }
107
-
108
- .redux-main .redux-option-image {
109
- max-width: 200px;
110
- max-height: 200px;
111
- }
112
-
113
- .redux-container #redux-footer {
114
- border-radius: 0;
115
- background: none !important;
116
- padding: 10px 0;
117
- border-top: 1px solid #D8D8D8;
118
- }
119
-
120
- .redux-container #redux-footer .redux-action_bar {
121
- padding-top: 9px !important;
122
- }
123
-
124
- .redux-container textarea, .redux-container input[type=text], .redux-container ul.data-full li {
125
- font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
126
- font-size: 13px;
127
- line-height: 19px;
128
- color: #333;
129
- }
130
-
131
- .redux-sidebar .redux-group-tab-link-a i {
132
- vertical-align: middle;
133
- font-size: 1.2em;
134
- position: absolute;
135
- width: 20px;
136
- text-align: center;
137
- top: 6px;
138
- color: #888;
139
- }
140
-
141
- @media screen and (max-width:1124px){
142
- .redux-sidebar .redux-group-tab-link-a i {
143
- position: relative;
144
- top: auto;
145
- }
146
- .redux-sidebar .redux-group-menu li a {
147
- text-align: center;
148
- padding: 6px !important;
149
- }
150
- }
151
-
152
- .redux-sidebar .redux-menu-warning i, .redux-sidebar .redux-menu-error i, .redux-sidebar .hasSubSections .extraIconSubsections i {
153
- top: 11px;
154
- }
155
-
156
- .redux-container ul.data-full{padding:0!important;margin:0!important}
157
-
158
- .redux-container .description {
159
- color: #666 !important;
160
- font-size: 14px !important;
161
- font-style: italic !important;
162
- margin-top: 10px !important;
163
- }
164
-
165
- .redux-container-switch {font-size: 13px}
166
-
167
- .redux-sidebar .redux-group-menu li {
168
- margin-top: 4px;
169
- }
170
-
171
- .redux-sidebar .redux-group-menu li a {
172
- color: #555;
173
- opacity: 1 !important;
174
- padding: 6px 4px 6px 14px;
175
- border-radius: 3px;
176
- border: none;
177
- transition: all .2s linear !important;
178
- }
179
-
180
- .redux-sidebar .redux-group-menu li a:hover {
181
- background: #e5e5e5;
182
- color: #333;
183
- }
184
-
185
- .redux-main #redux-sticky {
186
- margin: 0;
187
- min-height: auto;
188
- }
189
-
190
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a {
191
- background: #3ba1da !important;
192
- color: #fff;
193
- }
194
-
195
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a i {color: #fff !important}
196
-
197
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active {
198
- border-right: 0;
199
- }
200
-
201
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li {
202
- border-right: 0;
203
- margin-top: 4px;
204
- padding-left: 12px;
205
- }
206
-
207
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a {
208
- background: transparent !important;
209
- color: #555 !important;
210
- border-bottom: 0;
211
- padding: 6px 4px 6px 14px !important;
212
- }
213
-
214
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover {
215
- background: #e5e5e5 !important;
216
- color: #333 !important;
217
- }
218
-
219
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a {
220
- color: #3ba1da !important;
221
- background: #e5e5e5 !important;
222
- text-shadow: none !important;
223
- }
224
-
225
- .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after {
226
- border: none !important;
227
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/js/um-admin-users.js DELETED
@@ -1,30 +0,0 @@
1
- jQuery(document).ready(function() {
2
-
3
- function getParameterByName(name, url) {
4
- if (!url) url = window.location.href;
5
- name = name.replace(/[\[\]]/g, "\\$&");
6
- var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
7
- results = regex.exec(url);
8
- if (!results) return null;
9
- if (!results[2]) return '';
10
- return decodeURIComponent(results[2].replace(/\+/g, " "));
11
- }
12
-
13
- jQuery("#_um_synced_role").on("change",function(){
14
- $sync_button = jQuery("#_um_button_sync_update_button");
15
- var url = $sync_button.attr("href");
16
-
17
- if ( ! getParameterByName('wp_role', url) ) {
18
- console.log("wp_role is not set");
19
- }
20
-
21
- var um_role = getParameterByName('um_role', url);
22
- var wp_role = jQuery(this).val();
23
- $sync_button.attr("href", window.location.href+'&um_adm_action=mass_role_sync&um_role='+um_role+'&wp_role='+wp_role );
24
-
25
- });
26
-
27
-
28
-
29
- });
30
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/core/lib/ReduxFramework/CHANGELOG.md DELETED
@@ -1,2000 +0,0 @@
1
- # Redux Framework Changelog
2
-
3
- ## 3.6.2
4
- * WP.org release and cleanup
5
-
6
- ## 3.6.1.3
7
- * Fixed: #3105 - link_color output failing due to PHP error.
8
-
9
- ## 3.6.1.2
10
- * Fixed: #3103 - WP 4.6 forces new default date format, breaking date validation.
11
-
12
- ## 3.6.1.1
13
- * Fixed: Typography subsets error due to typo.
14
-
15
- ## 3.6.1 - WP.org release
16
-
17
- ## 3.6.0.11
18
- * Removed: Empty PHP file from editor field.
19
- * Modified: Replaced class primary function name in browser.php to __construct for PHP7 compatibility.
20
-
21
- ## 3.6.0.10
22
- * Fixed: #3051 - Color_RBGA field RGBA value outputting zeros when color is left blank.
23
-
24
- ## 3.6.0.9
25
- * Fixed: #3048 - Subsection tabs not including specified section class name.
26
-
27
- ## 3.6.0.8
28
- * Fixed: Incorrect string comparison result in admin link check. Thanks @ksere.
29
- * Fixed: Check value exists before validating when used with Metabox extension. Thanks @Enchiridion
30
-
31
-
32
- ## 3.6.0.7
33
- * Fixed: Empty values not passing to validation_callback.
34
-
35
-
36
- ## 3.6.0.6
37
- * Fixed: Javascript error in customizer javascript, preventing save of changed options.
38
- * Fixed: #3019 - Section descriptions incorrect when opt_name contains digits.
39
-
40
- ## 3.6.0.5
41
- * Reverted: Changes to typography. The on input variable solution was not working.
42
- * Fixed: Support URL has generator was failing with an error.
43
-
44
- ## 3.6.0.4
45
- * Changed: Typography field is now only ONE input variable. Should reduce our
46
- max_input_vars errors dramatically.
47
-
48
- ## 3.6.0.3
49
- * Fixed: Some XSS vulnerabilities only available in the backend when authenticated as a user.
50
-
51
- ## 3.6.0.2
52
- * Fixed: Customizer.min.js compression issue. Deploy.
53
-
54
- ## 3.6.0.1
55
- * Fixed Outdated redux.min.js on wp.org causing option panel failure.
56
- * Fixed: #2936 - Border field outputting px with blank value.
57
- * Fixed: Resolved Theme-Check php shortcode false notice.
58
- * Modified: No more major redirect for the Redux page, only on first install with the plugin.
59
- * Fixed: IE11 bug in the customizer. Thanks @anikitas!
60
-
61
- ## 3.6.0
62
- * Fixed: Fixed Customizer path issues
63
- * Added: Added new default arguments filter by opt_name and type. :)
64
- * Notice: WP.org release
65
-
66
- ## 3.5.9.8
67
- * Fixed: #2903 - False positive flag in border field JS. Avast doesn't like empty document ready statements.
68
-
69
- ## 3.5.9.7
70
- * Fixed: #2880 - More issues with the extensions_url routine.
71
-
72
- ## 3.5.9.6
73
- * Fixed: #2876 - Fixing more unvetted user contributions.
74
-
75
- ## 3.5.9.5
76
- * Modified: #2855 - Extensions now have a helper class to help composer-based installs. Thanks @2ndkauboy!
77
-
78
- ## 3.5.9.4
79
- * Fixed: #2857 - Required 'contains' not properly evaluating with checkboxes.
80
-
81
- ## 3.5.9.3
82
- * Fixed: #2831 - Localization was complete broken.
83
- * Fixed: #2832 - CSS conflicts with Rev Slider (Hey, Rev Slider guys, you don't have to load your CSS on every admin page. Really?)
84
-
85
- ## 3.5.9.2
86
- * Fixed: Leftover debug echo line in basic customizer extension.
87
-
88
- ## 3.5.9.1
89
- * Added: EXPERIMENTAL: New parsing code in an effort to break the 1000 max_input_var issue that crops up from time to time. Thanks, @harunbasic
90
- * Added: EXPERIMENTAL: "Bugfix" for extension_url in an effort to make it correct. Thanks, @ottok
91
-
92
- ## 3.5.9
93
- * Notice: New wp.org release
94
-
95
- ## 3.5.8.15
96
- * Fixed: Wordpress 4.4.1 related issues.
97
-
98
- ## 3.5.8.14
99
- * Fixed: #2794 - User contributed code from #2716 did not contain isset and caused an index error.
100
-
101
- ## 3.5.8.13
102
- * Modified: Added tons of wp_remote_get handlings to stop bringing down site if Redux is down.
103
- * Modified: When some items appear or not. Making devs lives easier. ;)
104
-
105
- ## 3.5.8.12
106
- * Updated: parsedown.php vendor code, to deal. with PHP 7.0 errors.
107
-
108
- ## 3.5.8.11
109
- * Fixed: #2774 - border fields set to 0 would disappear after saving.
110
- * Modified: Post/page settings on the media gallery window hidden for gallery field, since they are not applicable to Redux.
111
- * Added: #2728 - Filter for hints HTML. 'redux/hints/html'. Thanks, @nyordanov.
112
- * Fixed: #2716 - Enqueue jquery sortable when select field is set to sortable. Thanks, @josh-rathke.
113
-
114
- ## 3.5.8.10
115
- * Fixed: #2726 - Redux fixes for WordPress 4.4.
116
- * Fixed: #2713 - Alerts wouldn't disappear.
117
-
118
- ## 3.5.8.9
119
- * Fixed: #2726 - WP 4.4 breaking template.php include, because the core WP guys thought it would be hilarious to break everyone else's stuff.
120
-
121
- ## 3.5.8.8
122
- * Fixed: Specifying 'user' in a field's data argument would produce WordPress depreciation errors.
123
-
124
- ## 3.5.8.7
125
- * Fixed: Reflective XSS security fix. Thanks to Kacper Szurek for the information.
126
-
127
- ## 3.5.8.6
128
- * Modified: #2685 - Rejoined http strings to prevent errors in theme check. Trade off, INFO notices will appear. @Otto says this is ok.
129
-
130
- ## 3.5.8.5
131
- * Fixed: #2684 - Sorter not displaying (or saving) WordPress data when using the data argument.
132
-
133
- ## 3.5.8.4
134
- * Added: #2673 - WP_CLI check before welcome page redirect.
135
- * Fixed: #2677 - tinymce javascript errors when wp editor is disabled.
136
-
137
- ## 3.5.8.3
138
- * Modified: While in dev_mode, notices will appear if Redux sample data in share_icons and admin_bar_links arguments is not changed.
139
- This became necessary because devs are not changing this data and theme ends users are coming to us for theme support.
140
- * Modified: Redux links to be // instead of http:// or https:// to ensure portability for secure sites.
141
-
142
- ## 3.5.8.2
143
- * Fixed: #2665 - For those who must have empty dirs in the extensions dir. No more errors.
144
- * Added: #2660 - Added 'user'/'users' data type to wordpress data arg. Thanks @golchha21.
145
-
146
- ## 3.5.8.1
147
- * Fixed: #2652 - load_plugin_textdomain using depreciated argument.
148
-
149
- ## 3.5.8
150
- * Fixed: Customizer preview callback working again.
151
-
152
- ## 3.5.7.12
153
- * Fixed: last_tab argument not working.
154
-
155
- ## 3.5.7.11
156
- * Fixed: #2637 - color picker clear.
157
- * Fixed: #2633.
158
-
159
- ## 3.5.7.10
160
- * Fixed: #2624 - Border field saving/output 0px when no default set. Now accepts no default and outputs no CSS for blank values.
161
- * Fixed: color_rgba no long outputs CSS with empty color values.
162
-
163
- ## 3.5.7.9
164