PluginProbe
LoginPress | wp-login Custom Login Page Customizer / 1.1.3
LoginPress | wp-login Custom Login Page Customizer v1.1.3
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.1.3, at classes/class-loginpress-setup.php

271 lines 10.1 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' ), //<br /> When you set the time, here you need to set the expiration cookies. for this, you just need to logout at least one time. After login again, it should be working fine.<br />For removing the session expiration just pass empty value in “Expiration” field and save it. Now clear the expiration cookies by logout at least one time.
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 // Hide Advertisement in version 1.1.3
178 // if ( ! has_action( 'loginpress_pro_add_template' ) ) {
179 // array_unshift( $_free_fields , array(
180 // 'name' => 'enable_repatcha_promo',
181 // 'label' => __( 'Enable reCAPTCHA', 'loginpress' ),
182 // 'desc' => __( 'Enable LoginPress reCaptcha', 'loginpress' ),
183 // 'type' => 'checkbox'
184 // ) );
185 // }
186
187 $_settings_fields = apply_filters( 'loginpress_pro_settings', $_free_fields );
188
189 $settings_fields = array( 'loginpress_setting' => $_settings_fields );
190
191 $tab = apply_filters( 'loginpress_settings_fields', $settings_fields );
192
193 return $tab;
194 }
195
196 function plugin_page() {
197
198 echo '<div class="wrap loginpress-admin-setting">';
199 echo '<h2 style="margin: 20px 0 20px 0;">';
200 esc_html_e( 'LoginPress - Rebranding your boring WordPress Login pages', 'loginpress' );
201 echo '</h2>';
202
203 $this->settings_api->show_navigation();
204 $this->settings_api->show_forms();
205
206 echo '</div>';
207 }
208
209 /**
210 * [loginpress_help_page callback function for sub-page Help]
211 * @since 1.0.19
212 */
213 function loginpress_help_page(){
214
215 include LOGINPRESS_DIR_PATH . 'classes/class-loginpress-log.php';
216
217 $html = '<div class="loginpress-help-page">';
218 $html .= '<h2>Help & Troubleshooting</h2>';
219 $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>' );
220 $html .="<br /><br />";
221 $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>' );
222 $html .="<br /><br />";
223 $html .= 'Found a bug or have a feature request? Please submit an issue <a href="https://wpbrigade.com/contact/" target="_blank">here</a>!';
224 $html .= '<pre><textarea rows="25" cols="75" readonly="readonly">';
225 $html .= LoginPress_Log_Info::get_sysinfo();
226 $html .= '</textarea></pre>';
227 $html .= '<input type="button" class="button loginpress-log-file" value="' . __( 'Download Log File', 'loginpress' ) . '"/>';
228 $html .= '<span class="log-file-sniper"><img src="'. admin_url( 'images/wpspin_light.gif' ) .'" /></span>';
229 $html .= '<span class="log-file-text">LoginPress Log File Downloaded Successfully!</span>';
230 $html .= '</div>';
231 echo $html;
232 }
233
234 /**
235 * [loginpress_import_export_page callback function for sub-page Import / Export]
236 * @since 1.0.19
237 */
238 function loginpress_import_export_page(){
239
240 include LOGINPRESS_DIR_PATH . 'include/loginpress-import-export.php';
241 }
242
243 /**
244 * [loginpress_addons_page callback function for sub-page Add-ons]
245 * @since 1.0.19
246 */
247 function loginpress_addons_page() {
248
249 include LOGINPRESS_DIR_PATH . 'classes/class-loginpress-addons.php';
250 }
251
252 /**
253 * Get all the pages
254 *
255 * @return array page names with key value pairs
256 */
257 function get_pages() {
258 $pages = get_pages();
259 $pages_options = array();
260 if ( $pages ) {
261 foreach ($pages as $page) {
262 $pages_options[$page->ID] = $page->post_title;
263 }
264 }
265
266 return $pages_options;
267 }
268
269 }
270 endif;
271