PluginProbe
LoginPress | wp-login Custom Login Page Customizer / 1.0.22
LoginPress | wp-login Custom Login Page Customizer v1.0.22
6.2.5 6.2.4 6.2.3 6.2.2 6.2.1 trunk 1.0.0 1.0.1 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.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.3 1.0.4 All 118 releases
loginpress / classes / class-loginpress-setup.php

class-loginpress-setup.php in LoginPress | wp-login Custom Login Page Customizer 1.0.22, at classes/class-loginpress-setup.php

270 lines 9.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * LoginPress Settings
4 *
5 * @since 1.0.9
6 */
7 if ( ! class_exists( 'LoginPress_Settings' ) ):
8
9 class LoginPress_Settings {
10
11 private $settings_api;
12
13 function __construct() {
14
15 include_once( LOGINPRESS_ROOT_PATH . '/classes/class-loginpress-settings-api.php' );
16 $this->settings_api = new LoginPress_Settings_API;
17
18 add_action( 'admin_init', array( $this, 'loginpress_setting_init' ) );
19 add_action( 'admin_menu', array( $this, 'loginpress_setting_menu' ) );
20 }
21
22 function loginpress_setting_init() {
23
24 //set the settings.
25 $this->settings_api->set_sections( $this->get_settings_sections() );
26 $this->settings_api->set_fields( $this->get_settings_fields() );
27
28 //initialize settings.
29 $this->settings_api->admin_init();
30
31 //reset settings.
32 $this->load_default_settings();
33 }
34
35 function load_default_settings() {
36
37 $_loginpress_Setting = get_option( 'loginpress_setting' );
38 if ( isset( $_loginpress_Setting['reset_settings'] ) && 'on' == $_loginpress_Setting['reset_settings'] ) {
39
40 $loginpress_last_reset = array( 'last_reset_on' => date('Y-m-d') );
41 update_option( 'loginpress_customization', $loginpress_last_reset );
42 update_option( 'customize_presets_settings', 'default1' );
43 $_loginpress_Setting['reset_settings'] = 'off';
44 update_option( 'loginpress_setting', $_loginpress_Setting );
45 add_action( 'admin_notices', array( $this, 'settings_reset_message' ) );
46 }
47 }
48
49 function settings_reset_message() {
50
51 $class = 'notice notice-success';
52 $message = __( 'Default Settings Restored', 'loginpress' );
53
54 printf( '<div class="%1$s"><p>%2$s</p></div>', $class, $message );
55 }
56
57 function loginpress_setting_menu() {
58
59 add_menu_page( __( 'LoginPress', 'loginpress' ), __( 'LoginPress', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ), '', 50 );
60
61 add_submenu_page( 'loginpress-settings', __( 'Settings', 'loginpress' ), __( 'Settings', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ) );
62
63 add_submenu_page( 'loginpress-settings', __( 'Customizer', 'loginpress' ), __( 'Customizer', 'loginpress' ), 'manage_options', "loginpress", '__return_null' );
64
65 add_submenu_page( 'loginpress-settings', __( 'Help', 'loginpress' ), __( 'Help', 'loginpress' ), 'manage_options', "loginpress-help", array( $this, 'loginpress_help_page' ) );
66
67 add_submenu_page( 'loginpress-settings', __( 'Import/Export LoginPress Settings', 'loginpress' ), __( 'Import / Export', 'loginpress' ), 'manage_options', "loginpress-import-export", array( $this, 'loginpress_import_export_page' ) );
68
69 add_submenu_page( 'loginpress-settings', __( 'Add-Ons', 'loginpress' ), __( 'Add-Ons', 'loginpress' ), 'manage_options', "loginpress-addons", array( $this, 'loginpress_addons_page' ) );
70
71 }
72
73 function get_settings_sections() {
74
75 $loginpress_general_tab = array(
76 array(
77 'id' => 'loginpress_setting',
78 'title' => __( 'Settings', 'loginpress' ),
79 'desc' => sprintf( __( 'Everything else is customizable through %1$sWordPress Customizer%2$s.', 'loginpress' ), '<a href="' . admin_url( 'admin.php?page=loginpress' ) . '">', '</a>' ),
80 ),
81 );
82 // if ( has_action( 'loginpress_pro_add_template' ) ) {
83 //
84 // $loginpress_license =
85 // array(
86 // 'id' => 'loginpress_license',
87 // 'title' => __( 'License', 'loginpress' ),
88 // 'desc' => __( 'License Description', 'loginpress' ),
89 // );
90 // array_push( $loginpress_general_tab , $loginpress_license );
91 // }
92 if ( ! has_action( 'loginpress_pro_add_template' ) ) {
93
94 $loginpress_premium =
95 array(
96 'id' => 'loginpress_premium',
97 'title' => __( 'Upgrade to Pro for More Features', 'loginpress' )
98 );
99
100 array_push( $loginpress_general_tab , $loginpress_premium );
101 }
102
103 $sections = apply_filters( 'loginpress_settings_tab', $loginpress_general_tab );
104
105 return $sections;
106 }
107
108 /**
109 * Returns all the settings fields
110 *
111 * @return array settings fields
112 */
113 function get_settings_fields() {
114
115 /**
116 * [$_free_fields array of free fields]
117 * @var array
118 */
119 $_free_fields = array(
120 array(
121 'name' => 'session_expiration',
122 'label' => __( 'Session Expire', 'loginpress' ),
123 'desc' => __( 'Set the session expiration time in minutes. e.g: 10', 'loginpress' ),
124 'placeholder' => __( '10', 'loginpress' ),
125 'min' => 0,
126 // 'max' => 100,
127 'step' => '1',
128 'type' => 'number',
129 'default' => 'Title',
130 'sanitize_callback' => 'intval'
131 ),
132 // array(
133 // 'name' => 'enable_privacy_policy',
134 // 'label' => __( 'Enable Privacy Policy', 'loginpress' ),
135 // 'desc' => __( 'Enable Privacy Policy checkbox on registration page.', 'loginpress' ),
136 // 'type' => 'checkbox'
137 // ),
138 // array(
139 // 'name' => 'privacy_policy',
140 // 'label' => __( 'Privacy & Policy', 'loginpress' ),
141 // 'desc' => __( 'Right down the privacy and policy description.', 'loginpress' ),
142 // 'type' => 'wysiwyg',
143 // 'default' => __( sprintf( __( '%1$sPrivacy Policy%2$s.', 'loginpress' ), '<a href="' . admin_url( 'admin.php?page=loginpress-settings' ) . '">', '</a>' ) )
144 // ),
145 array(
146 'name' => 'enable_reg_pass_field',
147 'label' => __( 'Custom Password Fields', 'loginpress' ),
148 'desc' => __( 'Enable custom password fields on registration form.', 'loginpress' ),
149 'type' => 'checkbox'
150 ),
151 array(
152 'name' => 'login_order',
153 'label' => __( 'Login Order', 'loginpress' ),
154 'desc' => __( 'Enable users to login using their username and/or email address.', 'loginpress' ),
155 'type' => 'radio',
156 'default' => 'default',
157 'options' => array(
158 'default' => 'Both Username Or Email Address',
159 'username' => 'Only Username',
160 'email' => 'Only Email Address'
161 )
162 ),
163 // array(
164 // 'name' => 'login_with_email',
165 // 'label' => __( 'Login with Email', 'loginpress' ),
166 // 'desc' => __( 'Force user to login with Email Only Instead Username.', 'loginpress' ),
167 // 'type' => 'checkbox'
168 // ),
169 array(
170 'name' => 'reset_settings',
171 'label' => __( 'Reset Default Settings', 'loginpress' ),
172 'desc' => __( 'Remove my custom settings.', 'loginpress' ),
173 'type' => 'checkbox'
174 ),
175 );
176
177 if ( ! has_action( 'loginpress_pro_add_template' ) ) {
178 array_unshift( $_free_fields , array(
179 'name' => 'enable_repatcha_promo',
180 'label' => __( 'Enable reCAPTCHA', 'loginpress' ),
181 'desc' => __( 'Enable LoginPress reCaptcha', 'loginpress' ),
182 'type' => 'checkbox'
183 ) );
184 }
185
186 $_settings_fields = apply_filters( 'loginpress_pro_settings', $_free_fields );
187
188 $settings_fields = array( 'loginpress_setting' => $_settings_fields );
189
190 $tab = apply_filters( 'loginpress_settings_fields', $settings_fields );
191
192 return $tab;
193 }
194
195 function plugin_page() {
196
197 echo '<div class="wrap loginpress-admin-setting">';
198 echo '<h2 style="margin: 20px 0 20px 0;">';
199 esc_html_e( 'LoginPress - Rebranding your boring WordPress Login pages', 'loginpress' );
200 echo '</h2>';
201
202 $this->settings_api->show_navigation();
203 $this->settings_api->show_forms();
204
205 echo '</div>';
206 }
207
208 /**
209 * [loginpress_help_page callback function for sub-page Help]
210 * @since 1.0.19
211 */
212 function loginpress_help_page(){
213
214 include LOGINPRESS_DIR_PATH . 'classes/class-loginpress-log.php';
215
216 $html = '<div class="loginpress-help-page">';
217 $html .= '<h2>Help & Troubleshooting</h2>';
218 $html .= sprintf( __( 'Free support is available on the %1$s plugin support forums%2$s.', 'loginpress' ), '<a href="https://wordpress.org/support/plugin/loginpress" target="_blank">', '</a>' );
219 $html .="<br /><br />";
220 $html .= sprintf( __( 'For premium features, add-ons and priority email support, %1$s upgrade to pro%2$s.', 'loginpress' ), '<a href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=help-page&utm_campaign=pro-upgrade" target="_blank">', '</a>' );
221 $html .="<br /><br />";
222 $html .= 'Found a bug or have a feature request? Please submit an issue <a href="https://wpbrigade.com/contact/" target="_blank">here</a>!';
223 $html .= '<pre><textarea rows="25" cols="75" readonly="readonly">';
224 $html .= LoginPress_Log_Info::get_sysinfo();
225 $html .= '</textarea></pre>';
226 $html .= '<input type="button" class="button loginpress-log-file" value="' . __( 'Download Log File', 'loginpress' ) . '"/>';
227 $html .= '<span class="log-file-sniper"><img src="'. admin_url( 'images/wpspin_light.gif' ) .'" /></span>';
228 $html .= '<span class="log-file-text">LoginPress Log File Downloaded Successfully!</span>';
229 $html .= '</div>';
230 echo $html;
231 }
232
233 /**
234 * [loginpress_import_export_page callback function for sub-page Import / Export]
235 * @since 1.0.19
236 */
237 function loginpress_import_export_page(){
238
239 include LOGINPRESS_DIR_PATH . 'include/loginpress-import-export.php';
240 }
241
242 /**
243 * [loginpress_addons_page callback function for sub-page Add-ons]
244 * @since 1.0.19
245 */
246 function loginpress_addons_page() {
247
248 include LOGINPRESS_DIR_PATH . 'classes/class-loginpress-addons.php';
249 }
250
251 /**
252 * Get all the pages
253 *
254 * @return array page names with key value pairs
255 */
256 function get_pages() {
257 $pages = get_pages();
258 $pages_options = array();
259 if ( $pages ) {
260 foreach ($pages as $page) {
261 $pages_options[$page->ID] = $page->post_title;
262 }
263 }
264
265 return $pages_options;
266 }
267
268 }
269 endif;
270