PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.66
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.66
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.66, at admin/settings/class-uwp-settings-general.php

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