PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.43
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.43
1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 All 172 releases
userswp / admin / settings / class-uwp-settings-general.php

class-uwp-settings-general.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.2.43, at admin/settings/class-uwp-settings-general.php

817 lines 32.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * UsersWP General Settings
4 *
5 * @author AyeCode
6 * @category Admin
7 * @package userswp/Admin
8 * @version 1.0.24
9 */
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit; // Exit if accessed directly
13 }
14
15 if ( ! class_exists( 'UsersWP_Settings_General', false ) ) :
16
17 /**
18 * UsersWP_Settings_General.
19 */
20 class UsersWP_Settings_General extends UsersWP_Settings_Page {
21
22 /**
23 * Constructor.
24 */
25 public function __construct() {
26
27 $this->id = 'general';
28 $this->label = __( 'General', 'userswp' );
29
30 add_filter( 'uwp_settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
31 add_action( 'uwp_settings_' . $this->id, array( $this, 'output' ) );
32 add_action( 'uwp_sections_' . $this->id, array( $this, 'output_toggle_advanced' ) );
33 add_action( 'uwp_settings_save_' . $this->id, array( $this, 'save' ) );
34 add_action( 'uwp_sections_' . $this->id, array( $this, 'output_sections' ) );
35
36
37 }
38
39 /**
40 * Output the settings.
41 */
42 public function output() {
43 global $current_section;
44
45 $settings = $this->get_settings( $current_section );
46
47 UsersWP_Admin_Settings::output_fields( $settings );
48 }
49
50
51 /**
52 * Save settings.
53 */
54 public function save() {
55 global $current_section;
56
57 $settings = $this->get_settings( $current_section );
58 UsersWP_Admin_Settings::save_fields( $settings );
59 }
60
61 /**
62 * Get sections.
63 *
64 * @return array
65 */
66 public function get_sections() {
67
68 $sections = array(
69 '' => __( 'Pages', 'userswp' ),
70 'register' => __( 'Register', 'userswp' ),
71 'login' => __( 'Login', 'userswp' ),
72 'change-password' => __( 'Change Password', 'userswp' ),
73 'profile' => __( 'Profile', 'userswp' ),
74 'users' => __( 'Users', 'userswp' ),
75 'account' => __( 'Account', 'userswp' ),
76 'authorbox' => __( 'Author box', 'userswp' ),
77 'developer' => __( 'Developer', 'userswp' ),
78 );
79
80 return apply_filters( 'uwp_get_sections_' . $this->id, $sections );
81 }
82
83 /**
84 * Get general settings array.
85 *
86 * @return array
87 */
88 public function get_settings( $current_section = '' ) {
89
90 if ( 'register' == $current_section ) {
91 /**
92 * Filter registration settings array.
93 *
94 * @package userswp
95 */
96
97 $settings = apply_filters( 'uwp_register_options', array(
98 array(
99 'title' => __( 'Register Settings', 'userswp' ),
100 'type' => 'title',
101 'id' => 'register_options',
102 ),
103 array(
104 'id' => 'register_modal',
105 'name' => __( 'Register Lightbox', 'userswp' ),
106 'desc' => __( 'When enabled some register links will open in a lightbox instead of changing page.','userswp'),
107 'type' => 'checkbox',
108 'default' => '1',
109 ),
110 array(
111 'id' => 'register_modal_form',
112 'name' => __( 'Lightbox Form(s)', 'userswp' ),
113 'desc' => __( 'Choose form(s) to display in lighbox. You can select multiple forms.','userswp'),
114 'type' => 'multiselect',
115 'options' => uwp_get_register_forms_dropdown_options(),
116 'default' => '1',
117 'desc_tip' => true,
118 ),
119 array(
120 'id' => 'register_form_button_title',
121 'type' => 'text',
122 'name' => __( 'Register Form Button Title', 'userswp' ),
123 'desc' => __( 'Enter the register form button title.', 'userswp' ),
124 'placeholder' => __( 'Create account', 'userswp' ),
125 'default' => '',
126 'desc_tip' => true,
127 'advanced' => true
128 ),
129 array(
130 'id' => 'wp_register_redirect',
131 'name' => __( 'Redirect Admin Default Register Page', 'userswp' ),
132 'desc' => __( 'When enabled /wp-login.php?action=register page will be redirected to UsersWP register page.', 'userswp' ),
133 'type' => 'checkbox',
134 'default' => '1',
135 ),
136 array(
137 'id' => 'register_min_password_strength',
138 'name' => __( 'Minimum password strength', 'userswp' ),
139 'desc' => __( 'Forces users to use strong password on registration if set.', 'userswp' ),
140 'type' => 'select',
141 'options' => array(''=>'None','3'=>'Medium','4'=>'Strong'),
142 'default' => '',
143 'desc_tip' => true,
144 ),
145 array(
146 'id' => 'register_uwp_strong_pass_msg',
147 'name' => __( 'Error message for entering strong password', 'userswp' ),
148 'desc' => __( 'Enter the message to show when user enters weak password in registration form.', 'userswp' ),
149 'type' => 'text',
150 'default' => '',
151 'placeholder' => __( 'Please enter valid strong password.', 'userswp' ),
152 'desc_tip' => true,
153 'advanced' => true,
154 ),
155 array(
156 'id' => 'register_username_length',
157 'name' => __( 'Username Minimum Length', 'userswp' ),
158 'desc' => __( 'Minimum username character limit required for registration.', 'userswp' ),
159 'desc_tip' => true,
160 'type' => 'number',
161 'default' => '4',
162 'advanced' => true,
163 ),
164 array(
165 'id' => 'register_username_length_max',
166 'name' => __( 'Username Maximum Length', 'userswp' ),
167 'desc' => __( 'Maximum username character limit required for registration.', 'userswp' ),
168 'desc_tip' => true,
169 'type' => 'number',
170 'default' => '20',
171 'advanced' => true,
172 ),
173 array(
174 'id' => 'register_password_min_length',
175 'name' => __( 'Minimum Password Limit', 'userswp' ),
176 'desc' => __( 'Minimum Password limit user should enter in the form.', 'userswp' ),
177 'desc_tip' => true,
178 'type' => 'number',
179 'default' => '8',
180 'advanced' => true,
181 ),
182 array(
183 'id' => 'register_password_max_length',
184 'name' => __( 'Maximum Password Limit', 'userswp' ),
185 'desc' => __( 'Maximum Password limit user should enter in the form.', 'userswp' ),
186 'desc_tip' => true,
187 'type' => 'number',
188 'default' => '15',
189 'advanced' => true,
190 ),
191
192 array( 'type' => 'sectionend', 'id' => 'register_options' ),
193 ));
194 } else if ( 'login' == $current_section ) {
195 /**
196 * Filter login settings array.
197 *
198 * @package userswp
199 */
200 $pages = get_pages();
201 $pages_options = array(
202 '-1' => __( 'Last User Page', 'userswp' ),
203 '0' => __( 'Default Redirect', 'userswp'),
204 '-2' => __( 'Custom Redirect', 'userswp'),
205 );
206 if ( $pages ) {
207 foreach ( $pages as $page ) {
208 $pages_options[ $page->ID ] = $page->post_title;
209 }
210 }
211
212 $settings = apply_filters( 'uwp_login_options', array(
213 array(
214 'title' => __( 'Login Settings', 'userswp' ),
215 'type' => 'title',
216 'id' => 'login_options',
217 ),
218 array(
219 'id' => 'login_modal',
220 'name' => __( 'Login Lightbox', 'userswp' ),
221 'desc' => __( 'When enabled some login links will open in a lightbox instead of changing page. The page will be reloaded after successful login instead of a redirect.','userswp'),
222 'type' => 'checkbox',
223 'default' => '1',
224 ),
225 array(
226 'id' => 'login_modal_enable_redirect',
227 'name' => __( 'Enable Login Lightbox Redirect', 'userswp' ),
228 'desc' => __( 'When enabled the login in lightbox will follow login redirect settings.','userswp'),
229 'type' => 'checkbox',
230 'default' => '0',
231 ),
232 array(
233 'id' => 'login_redirect_to',
234 'name' => __( 'Login Redirect Page', 'userswp' ),
235 'desc' => __( 'Set the page to redirect the user to after logging in. If default redirect has been set then WordPress default will be used.', 'userswp' ),
236 'type' => 'select',
237 'options' => $pages_options,
238 'default' => '-1',
239 'desc_tip' => true,
240 ),
241 array(
242 'id' => 'login_redirect_custom_url',
243 'name' => __( 'Redirect Custom URL', 'userswp' ),
244 'desc' => __( 'Set the custom url to redirect the user to after logging in.', 'userswp' ),
245 'type' => 'text',
246 'default' => '',
247 'desc_tip' => true,
248 'class' => 'uwp-login-redirect-custom-url',
249 ),
250 array(
251 'id' => 'register_link_title',
252 'name' => __( 'Register Link Title', 'userswp' ),
253 'desc' => __( 'Enter the register link title.', 'userswp' ),
254 'type' => 'text',
255 'default' => '',
256 'placeholder' => __( 'Create account', 'userswp' ),
257 'desc_tip' => true,
258 'advanced' => true,
259 ),
260 array(
261 'id' => 'forgot_link_title',
262 'name' => __( 'Forgot Password Link Title', 'userswp' ),
263 'desc' => __( 'Enter the forgot password title.', 'userswp' ),
264 'type' => 'text',
265 'default' => '',
266 'placeholder' => __( 'Forgot password?', 'userswp' ),
267 'desc_tip' => true,
268 'advanced' => true,
269 ),
270 array(
271 'id' => 'block_wp_login',
272 'name' => __( 'Redirect wp-login.php?', 'userswp' ),
273 'desc' => __('When enabled /wp-login.php page will be redirected to UsersWP login page.','userswp' ),
274 'type' => 'checkbox',
275 'default' => '0',
276 ),
277 array(
278 'name' => __( 'Restrict wp-admin', 'userswp' ),
279 'desc' => __( 'The user roles that should be restricted from accessing the wp-admin area.', 'userswp' ),
280 'id' => 'admin_blocked_roles',
281 'default' => array('subscriber'),
282 'type' => 'multiselect',
283 'class' => 'uwp-select',
284 'options' => uwp_get_user_roles(array('administrator')),
285 'desc_tip' => true,
286 ),
287 array(
288 'id' => 'logout_redirect_to',
289 'name' => __( 'Logout Redirect Page', 'userswp' ),
290 'desc' => __( 'Set the page to redirect the user to after logging out. If no page has been set WordPress default will be used.', 'userswp' ),
291 'type' => 'single_select_page',
292 'desc_tip' => true,
293 ),
294 array(
295 'id' => 'disable_wp_2fa',
296 'name' => __( 'Disable WP-2FA', 'userswp' ),
297 'desc' => __('This will disable integration with WP 2FA - Two-factor authentication for WordPress plugin.','userswp' ),
298 'type' => 'checkbox',
299 'default' => '0',
300 ),
301 array( 'type' => 'sectionend', 'id' => 'login_options' ),
302 ));
303 } else if ( 'change-password' == $current_section ) {
304 /**
305 * Filter change password settings array.
306 *
307 * @package userswp
308 */
309 $settings = apply_filters( 'uwp_change_password_options', array(
310 array(
311 'title' => __( 'Change Password Settings', 'userswp' ),
312 'type' => 'title',
313 'id' => 'change_password_options',
314 ),
315 array(
316 'id' => 'forgot_modal',
317 'name' => __( 'Forgot password lightbox', 'userswp' ),
318 'desc' => __( 'When enabled some forgot password links will open in a lightbox instead of changing page.','userswp'),
319 'type' => 'checkbox',
320 'default' => '1',
321 ),
322 array(
323 'id' => 'login_link_title',
324 'name' => __( 'Login Link Title', 'userswp' ),
325 'desc' => __( 'Enter the login link title.', 'userswp' ),
326 'type' => 'text',
327 'default' => '',
328 'placeholder' => __( 'Login', 'userswp' ),
329 'desc_tip' => true,
330 'advanced' => true,
331 ),
332 array(
333 'id' => 'profile_link_title',
334 'name' => __( 'Profile Link Title', 'userswp' ),
335 'desc' => __( 'Enter the profile link title.', 'userswp' ),
336 'type' => 'text',
337 'default' => '',
338 'placeholder' => __( 'Profile', 'userswp' ),
339 'desc_tip' => true,
340 'advanced' => true,
341 ),
342 array(
343 'id' => 'account_link_title',
344 'name' => __( 'Account Link Title', 'userswp' ),
345 'desc' => __( 'Enter the account link title.', 'userswp' ),
346 'type' => 'text',
347 'default' => '',
348 'placeholder' => __( 'Account', 'userswp' ),
349 'desc_tip' => true,
350 'advanced' => true,
351 ),
352 array(
353 'id' => 'change_enable_old_password',
354 'name' => __( 'Enabled Old Password?', 'userswp' ),
355 'desc' => __( 'Ask user to enter their old password before changing the password to add an extra layer of security.', 'userswp' ),
356 'type' => 'checkbox',
357 'default' => '1',
358 ),
359 array(
360 'id' => 'change_disable_password_nag',
361 'name' => __( 'Disable system generated password notice.', 'userswp' ),
362 'desc' => __( 'This option will disable system generated password notice if user has not changed default password after registration.', 'userswp' ),
363 'type' => 'checkbox',
364 'default' => '0',
365 ),
366
367 array( 'type' => 'sectionend', 'id' => 'change_password_options' ),
368 ));
369 } else if ( 'profile' == $current_section ) {
370 /**
371 * Filter profile settings array.
372 *
373 * @package userswp
374 */
375 $file_obj = new UsersWP_Files();
376
377 $settings = apply_filters( 'uwp_profile_options', array(
378 array(
379 'title' => __( 'Profile Settings', 'userswp' ),
380 'type' => 'title',
381 'id' => 'profile_options',
382 ),
383 array(
384 'id' => 'profile_default_banner',
385 'name' => __( 'Default banner image', 'userswp' ),
386 'desc' => __( 'Recommended image size: 1000x300', 'userswp'),
387 'type' => 'image',
388 'default' => '',
389 'desc_tip' => true,
390 ),
391 array(
392 'id' => 'profile_default_profile',
393 'name' => __( 'Default profile image', 'userswp' ),
394 'desc' => __( 'Recommended image size: 150x150', 'userswp'),
395 'type' => 'image',
396 'default' => '',
397 'desc_tip' => true,
398 ),
399 array(
400 'id' => 'enable_profile_header',
401 'name' => __( 'Display header in profile', 'userswp' ),
402 'type' => 'checkbox',
403 'default' => '1',
404 'advanced' => true,
405 ),
406 array(
407 'id' => 'enable_profile_body',
408 'name' => __( 'Display body in profile', 'userswp' ),
409 'type' => 'checkbox',
410 'default' => '1',
411 'advanced' => true,
412 ),
413 array(
414 'id' => 'profile_avatar_size',
415 'name' => __( 'Profile avatar max file size', 'userswp' ),
416 'desc' => sprintf(__( 'Enter Profile Avatar max file size in Kb. e.g. 512 for 512 kb, 1024 for 1 Mb, 2048 for 2 Mb etc. If empty WordPress default (%s) will be used.', 'userswp' ), '<b>'.$file_obj->uwp_formatSizeinKb($file_obj->uwp_get_max_upload_size()).'</b>'),
417 'type' => 'number',
418 'default' => '',
419 'desc_tip' => true,
420 'advanced' => true,
421 ),
422 array(
423 'id' => 'profile_banner_size',
424 'name' => __( 'Profile banner max file size', 'userswp' ),
425 'desc' => sprintf(__( 'Enter Profile Banner max file size in Kb. e.g. 512 for 512 kb, 1024 for 1 Mb, 2048 for 2 Mb etc. If empty WordPress default (%s) will be used.', 'userswp' ), '<b>'.$file_obj->uwp_formatSizeinKb($file_obj->uwp_get_max_upload_size()).'</b>'),
426 'type' => 'number',
427 'default' => '',
428 'desc_tip' => true,
429 'advanced' => true,
430 ),
431 array(
432 'id' => 'profile_avatar_width',
433 'name' => __( 'Profile avatar width', 'userswp' ),
434 'type' => 'number',
435 'default' => 150,
436 'advanced' => true,
437 ),
438 array(
439 'id' => 'profile_avatar_height',
440 'name' => __( 'Profile avatar height', 'userswp' ),
441 'type' => 'number',
442 'default' => 150,
443 'advanced' => true,
444 ),
445 array(
446 'id' => 'profile_banner_width',
447 'name' => __( 'Profile banner width', 'userswp' ),
448 'type' => 'number',
449 'default' => 1000,
450 'advanced' => true,
451 ),
452 array(
453 'id' => 'profile_banner_height',
454 'name' => __( 'Profile banner height', 'userswp' ),
455 'type' => 'number',
456 'default' => 300,
457 'advanced' => true,
458 ),
459 array(
460 'id' => 'profile_no_of_items',
461 'name' => __( 'Number of items', 'userswp' ),
462 'type' => 'number',
463 'default' => 10,
464 'desc' => __( 'Enter number of items to display in profile tabs.', 'userswp' ),
465 'desc_tip' => true,
466 'advanced' => true,
467 ),
468 array(
469 'id' => 'uwp_disable_author_link',
470 'name' => __( 'Disable author redirect to UsersWP profile page.', 'userswp' ),
471 'type' => 'checkbox',
472 'default' => '0',
473 'advanced' => true,
474 ),
475 array(
476 'id' => 'user_post_counts_cpts',
477 'name' => __( 'User Counts CPTs', 'userswp' ),
478 'desc' => __( 'Choose post types to display user counts in profile page for all users.', 'userswp' ),
479 'type' => 'multiselect',
480 'sortable' => true,
481 'options' => uwp_get_posttypes(),
482 'desc_tip' => true,
483 ),
484 array(
485 'id' => 'login_user_post_counts_cpts',
486 'name' => __( 'User Counts CPTs for profile owner', 'userswp' ),
487 'desc' => __( 'Choose post types to display user counts in profile page for profile owners.', 'userswp' ),
488 'type' => 'multiselect',
489 'sortable' => true,
490 'options' => uwp_get_posttypes(),
491 'desc_tip' => true,
492 ),
493 array( 'type' => 'sectionend', 'id' => 'profile_options' ),
494 ));
495 } else if ( 'users' == $current_section ) {
496 /**
497 * Filter general settings array.
498 *
499 * @package userswp
500 */
501 $settings = apply_filters( 'uwp_users_options', array(
502 array(
503 'title' => __( 'Users Settings', 'userswp' ),
504 'type' => 'title',
505 'id' => 'users_options',
506 ),
507
508 array(
509 'id' => 'users_default_layout',
510 'name' => __( 'Users default layout', 'userswp' ),
511 'desc' => __( 'Choose the default layout for users listing page.', 'userswp' ),
512 'type' => 'select',
513 'options' => $this->uwp_available_users_layout(),
514 'desc_tip' => true,
515 ),
516 array(
517 'id' => 'users_no_of_items',
518 'name' => __( 'Number of items', 'userswp' ),
519 'type' => 'number',
520 'default' => 10,
521 'desc' => __( 'Enter number of items to display in users list page.', 'userswp' ),
522 'desc_tip' => true,
523 'advanced' => true,
524 ),
525 array(
526 'id' => 'users_excluded_from_list',
527 'name' => __( 'Users to exclude', 'userswp' ),
528 'desc' => __( 'Select users to exclude from the users listing.', 'userswp' ),
529 'desc_tip' => true,
530 'type' => 'multiselect',
531 'size' => 'regular',
532 'options' => $this->get_users(),
533 ),
534
535 array( 'type' => 'sectionend', 'id' => 'users_options' ),
536 ));
537 }else if ( 'account' == $current_section ) {
538 /**
539 * Filter general settings array.
540 *
541 * @package userswp
542 */
543 $settings = apply_filters( 'uwp_users_options', array(
544 array(
545 'title' => __( 'User Account Settings', 'userswp' ),
546 'type' => 'title',
547 'id' => 'accounts_options',
548 ),
549
550 array(
551 'id' => 'disable_account_delete',
552 'name' => __( 'Disable Account Delete', 'userswp' ),
553 'desc' => __( 'Don\'t allow users to delete their own account. Default enabled.' , 'userswp' ),
554 'type' => 'checkbox',
555 'default' => 0,
556 ),
557
558 array( 'type' => 'sectionend', 'id' => 'accounts_options' ),
559 ));
560 }else if ( 'authorbox' == $current_section ) {
561 /**
562 * Filter general settings array.
563 *
564 * @package userswp
565 */
566 $settings = apply_filters( 'uwp_authorbox_options', array(
567 array(
568 'title' => __( 'Author Box Settings', 'userswp' ),
569 'type' => 'title',
570 'id' => 'authorbox_options',
571 ),
572 array(
573 'id' => 'author_box_enable_disable',
574 'name' => __( 'Enable Author Box', 'userswp' ),
575 'desc' => __( 'Displays author box based on settings', 'userswp' ),
576 'type' => 'checkbox',
577 'default' => '1',
578 ),
579 array(
580 'id' => 'author_box_display_content',
581 'name' => __('Where to display?', 'userswp'),
582 'desc' => __('Displays the author box above or below post content.', 'userswp'),
583 'type' => 'select',
584 'options' => array(
585 'above_content' => __('Above content', 'userswp'),
586 'below_content' => __('Below content', 'userswp'),
587 ),
588 'desc_tip' => true,
589 'default' => 'below_content',
590 ),
591 array(
592 'id' => 'author_box_display_post_types',
593 'name' => __( 'Post types', 'userswp' ),
594 'desc' => __( 'Choose post types to display author box', 'userswp' ),
595 'type' => 'multiselect',
596 'sortable' => true,
597 'options' => uwp_get_posttypes(),
598 'desc_tip' => true,
599 'default' => 'post',
600 ),
601 array(
602 'id' => 'author_box_bio_limit',
603 'name' => __( 'Bio Length', 'userswp' ),
604 'desc' => __( 'Author bio word limit in Author box.', 'userswp' ),
605 'desc_tip' => true,
606 'type' => 'number',
607 'default' => '200',
608 'advanced' => true,
609 ),
610 array(
611 'name' => __('Author box Content', 'userswp'),
612 'desc' => __('The author box body, this can be text or HTML.', 'userswp'),
613 'id' => 'author_box_content',
614 'type' => 'textarea',
615 'class' => 'code uwp-authorbox-body',
616 'desc_tip' => true,
617 'placeholder' => UsersWP_Defaults::author_box_content(),
618 'custom_desc' => __('Available template tags:', 'userswp') . ' ' . uwp_authbox_tags(),
619 'advanced' => true,
620 ),
621 array(
622 'name' => __('Author box Content (bootstrap)', 'userswp'),
623 'desc' => __('The author box body, this can be text or HTML.', 'userswp'),
624 'id' => 'author_box_content_bootstrap',
625 'type' => 'textarea',
626 'class' => 'code uwp-authorbox-body',
627 'desc_tip' => true,
628 'placeholder' => UsersWP_Defaults::author_box_content_bootstrap(),
629 'custom_desc' => __('Available template tags:', 'userswp') . ' ' . uwp_authbox_tags(),
630 'advanced' => true,
631 ),
632
633 array( 'type' => 'sectionend', 'id' => 'authorbox_options' ),
634 ));
635 }else if ( 'developer' == $current_section ) {
636 /**
637 * Filter general settings array.
638 *
639 * @package userswp
640 */
641 $settings = apply_filters( 'uwp_developer_options', array(
642 array(
643 'title' => __( 'Developer Settings', 'userswp' ),
644 'type' => 'title',
645 'id' => 'developer_options',
646 ),
647
648 array(
649 'id' => 'disable_avatar_override',
650 'name' => __( 'Disable Avatar Override?', 'userswp' ),
651 'desc' => __( 'By default UsersWP will change the avatar to profile image. You can disable this using this option.', 'userswp' ),
652 'type' => 'checkbox',
653 ),
654
655 array(
656 'name' => __( 'Advanced settings', 'userswp' ),
657 'desc' => __( 'Disable advanced toggle, show advanced settings at all times (not recommended).', 'userswp' ),
658 'id' => 'admin_disable_advanced',
659 'type' => 'checkbox',
660 ),
661
662 array(
663 'id' => 'enable_uwp_error_log',
664 'name' => __( 'Debugging', 'userswp' ),
665 'desc' => __( 'Show debugging info in the error logs.', 'userswp' ),
666 'type' => 'checkbox',
667 ),
668
669 // @todo to be move to own design section
670 array(
671 'id' => 'design_style',
672 'name' => __('Default Design Style', 'userswp'),
673 'desc' => __('The default design style to use.', 'userswp'),
674 'type' => 'select',
675 'options' => array(
676 'bootstrap' => __('Bootstrap', 'userswp'),
677 '' => __('Legacy (non-bootstrap)', 'userswp'),
678 ),
679 'desc_tip' => true,
680 'default' => 'bootstrap',
681 ),
682
683 array( 'type' => 'sectionend', 'id' => 'developer_options' ),
684 ));
685 } else {
686 /**
687 * Filter pages settings array.
688 *
689 * @package userswp
690 */
691 $settings = apply_filters( 'uwp_page_options', array(
692 array(
693 'title' => __( 'Page Settings', 'userswp' ),
694 'type' => 'title',
695 'desc' => 'These are essential pages used by UWP, you can set the pages here and edit the title/slug of the page via WP page settings.',
696 'id' => 'page_options',
697 'desc_tip' => true,
698 ),
699 array(
700 'name' => __( 'User Profile Page', 'userswp' ),
701 'desc' => __( 'This is the front end user\'s profile page. This page automatically overrides the default WordPress author page.', 'userswp' ),
702 'id' => 'profile_page',
703 'type' => 'single_select_page',
704 'desc_tip' => true,
705 ),
706 array(
707 'name' => __( 'Register Page', 'userswp' ),
708 'desc' => __( 'This is the front end register page. This is where users create their account.', 'userswp' ),
709 'id' => 'register_page',
710 'type' => 'single_select_page',
711 'desc_tip' => true,
712 ),
713 array(
714 'name' => __( 'Login Page', 'userswp' ),
715 'desc' => __( 'This is the front end login page. This is where users will login after creating their account.', 'userswp' ),
716 'id' => 'login_page',
717 'type' => 'single_select_page',
718 'desc_tip' => true,
719 ),
720 array(
721 'name' => __( 'Account Page', 'userswp' ),
722 'desc' => __( 'This is the front end account page. This is where users can edit their account.', 'userswp' ),
723 'id' => 'account_page',
724 'type' => 'single_select_page',
725 'desc_tip' => true,
726 ),
727 array(
728 'name' => __( 'Change Password Page', 'userswp' ),
729 'desc' => __( 'This is the front end Change Password page.', 'userswp' ),
730 'id' => 'change_page',
731 'type' => 'single_select_page',
732 'desc_tip' => true,
733 ),
734 array(
735 'name' => __( 'Forgot Password Page', 'userswp' ),
736 'desc' => __( 'This is the front end Forgot Password page. This is the page where users are sent to reset their password when they lose it.', 'userswp' ),
737 'id' => 'forgot_page',
738 'type' => 'single_select_page',
739 'desc_tip' => true,
740 ),
741 array(
742 'name' => __( 'Reset Password Page', 'userswp' ),
743 'desc' => __( 'This is the front end Reset Password page. This is the page where users can reset their password when they lose it.', 'userswp' ),
744 'id' => 'reset_page',
745 'type' => 'single_select_page',
746 'desc_tip' => true,
747 ),
748 array(
749 'name' => __( 'Users List Page', 'userswp' ),
750 'desc' => __( 'This is the front end Users List page. This is the page where all registered users of the websites are listed.', 'userswp' ),
751 'id' => 'users_page',
752 'type' => 'single_select_page',
753 'desc_tip' => true,
754 ),
755 array(
756 'name' => __( 'Users List Item Page', 'userswp' ),
757 'desc' => __( 'This is the page/template for displaying user item in users list page. You can change the template as you want which will apply to each user item in users list page.', 'userswp' ),
758 'id' => 'user_list_item_page',
759 'type' => 'single_select_page',
760 'desc_tip' => true,
761 ),
762 array( 'type' => 'sectionend', 'id' => 'page_options' ),
763 ));
764 }
765
766
767 return apply_filters( 'uwp_get_settings_' . $this->id, $settings );
768 }
769
770 /**
771 * Output a color picker input box.
772 *
773 * @param mixed $name
774 * @param string $id
775 * @param mixed $value
776 * @param string $desc (default: '')
777 */
778 public function color_picker( $name, $id, $value, $desc = '' ) {
779 echo '<div class="color_box">' . uwp_help_tip( $desc ) . '<input name="' . esc_attr( $id ) . '" id="' . esc_attr( $id ) . '" type="text" value="' . esc_attr( $value ) . '" class="colorpick" /> <div id="colorPickerDiv_' . esc_attr( $id ) . '" class="colorpickdiv"></div></div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
780 }
781
782 public function uwp_available_users_layout() {
783 $tabs_arr = array(
784 'list' => __( 'Grid View - 1 Column (List View)', 'userswp' ),
785 '2col' => __( 'Grid View - 2 Column', 'userswp' ),
786 '3col' => __( 'Grid View - 3 Column', 'userswp' ),
787 '4col' => __( 'Grid View - 4 Column', 'userswp' ),
788 '5col' => __( 'Grid View - 5 Column', 'userswp' ),
789 );
790
791 $tabs_arr = apply_filters('uwp_available_users_layout', $tabs_arr);
792
793 return $tabs_arr;
794 }
795
796 /**
797 * Get users lists.
798 *
799 * @return array $users
800 */
801 public function get_users() {
802 $get_users = get_users();
803
804 $users = array();
805 if(!empty($get_users) ) {
806 foreach ($get_users as $key => $user) {
807 $users[$user->ID] = esc_attr( $user->display_name );
808 }
809 }
810
811 return $users;
812 }
813 }
814
815 endif;
816
817 return new UsersWP_Settings_General();