PluginProbe
User Verification by PickPlugins / trunk
User Verification by PickPlugins vtrunk
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.19 1.0.2 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.29 1.0.3 1.0.30 1.0.31 1.0.35 1.0.36 All 117 releases
user-verification / user-verification.php

user-verification.php in User Verification by PickPlugins trunk, at user-verification.php

369 lines 14.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: User Verification by PickPlugins
4 Plugin URI: http://pickplugins.com
5 Description: Verify user before access on your website.
6 Version: 2.0.47
7 Text Domain: user-verification
8 Domain Path: /languages
9 Author: PickPlugins
10 Author URI: http://pickplugins.com
11 License: GPLv2 or later
12 License URI: http://www.gnu.org/licenses/gpl-2.0.html
13 */
14
15 if (!defined('ABSPATH')) exit; // if direct access
16
17
18 class UserVerification
19 {
20
21 public function __construct()
22 {
23
24 $this->_define_constants();
25
26 $this->_load_functions();
27 $this->_load_classes();
28 $this->_load_script();
29
30 global $UserVerificationVars;
31
32 $UserVerificationVars['siteUrl'] = get_bloginfo('url');
33
34
35 add_action('plugins_loaded', array($this, '_textdomain'));
36 register_activation_hook(__FILE__, array($this, '_activation'));
37 register_deactivation_hook(__FILE__, array($this, '_deactivation'));
38 add_filter('cron_schedules', array($this, '_cron_schedules'));
39 add_action('wp_enqueue_scripts', array($this, '_front_scripts'));
40 add_action('login_enqueue_scripts', array($this, '_login_scripts'));
41 }
42
43
44 public function _textdomain()
45 {
46
47 $locale = apply_filters('plugin_locale', get_locale(), 'user-verification');
48 load_textdomain('user-verification', WP_LANG_DIR . '/user-verification/user-verification-' . $locale . '.mo');
49
50 load_plugin_textdomain('user-verification', false, plugin_basename(dirname(__FILE__)) . '/languages/');
51 }
52
53 function _cron_schedules($schedules)
54 {
55
56
57
58 $schedules['10minute'] = array(
59 'interval' => 600,
60 'display' => __('10 Minute', 'user-verification')
61 );
62
63 $schedules['30minute'] = array(
64 'interval' => 1800,
65 'display' => __('30 Minute', 'user-verification')
66 );
67
68 $schedules['6hours'] = array(
69 'interval' => 21600,
70 'display' => __('6 hours', 'user-verification')
71 );
72
73
74
75
76
77 return $schedules;
78 }
79
80
81 public function _activation()
82 {
83
84
85 if (!wp_next_scheduled('user_verification_clean_user_meta')) {
86 wp_schedule_event(time(), 'daily', 'user_verification_clean_user_meta');
87 }
88
89 if (!wp_next_scheduled('user_verification_verify_reminder')) {
90 wp_schedule_event(time(), 'daily', 'user_verification_verify_reminder');
91 }
92
93 if (!wp_next_scheduled('user_verification_validated_users_email')) {
94 wp_schedule_event(time(), 'daily', 'user_verification_validated_users_email');
95 }
96
97 global $wpdb;
98 $charset_collate = $wpdb->get_charset_collate();
99 $prefix = $wpdb->prefix;
100 $table = $prefix . 'user_verification_stats';
101
102 $sql = "CREATE TABLE IF NOT EXISTS $table (
103
104 id int(100) NOT NULL AUTO_INCREMENT,
105 type VARCHAR( 50 ) NOT NULL,
106 datetime DATETIME NOT NULL,
107
108 UNIQUE KEY id (id)
109 ) $charset_collate;";
110
111 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
112 dbDelta($sql);
113
114
115 // $user_verification_info = array();
116 // $user_verification_info['db_version'] = 0;
117
118
119
120 do_action('user_verification_activation');
121 }
122
123
124 public function _deactivation()
125 {
126
127 wp_clear_scheduled_hook('user_verification_clean_user_meta');
128 wp_clear_scheduled_hook('user_verification_verify_reminder');
129
130
131 /*
132 * Custom action hook for plugin deactivation.
133 * Action hook: user_verification_deactivation
134 * */
135 do_action('user_verification_deactivation');
136 }
137
138
139 public function _load_functions()
140 {
141
142
143 require_once(user_verification_plugin_dir . 'includes/functions-email-validation.php');
144 require_once(user_verification_plugin_dir . 'includes/functions.php');
145 require_once(user_verification_plugin_dir . 'includes/functions-ajax.php');
146
147 require_once(user_verification_plugin_dir . 'includes/functions-recaptcha.php');
148 // require_once(user_verification_plugin_dir . 'includes/functions-mail-otp.php');
149 require_once(user_verification_plugin_dir . 'includes/functions-isspammy.php');
150 //require_once( user_verification_plugin_dir . 'includes/functions-temp-login.php');
151
152 require_once(user_verification_plugin_dir . 'includes/functions-cron-hook.php');
153
154 require_once(user_verification_plugin_dir . 'includes/3rd-party/3rd-party.php');
155
156 require_once(user_verification_plugin_dir . 'includes/functions-user-profile.php');
157 require_once(user_verification_plugin_dir . 'includes/functions-rest.php');
158 //require_once(user_verification_plugin_dir . 'includes/functions-hide-login.php');
159 require_once(user_verification_plugin_dir . 'includes/functions-login-attempt.php');
160
161 require_once(user_verification_plugin_dir . 'includes/functions-counter.php');
162
163 require_once(user_verification_plugin_dir . 'templates/magic-login-form/index.php');
164 require_once(user_verification_plugin_dir . 'templates/magic-login-form/hook.php');
165
166 require_once(user_verification_plugin_dir . 'templates/email-otp-login-form/index.php');
167 require_once(user_verification_plugin_dir . 'templates/email-otp-login-form/hook.php');
168 }
169
170
171 public function _load_script()
172 {
173
174 add_action('admin_enqueue_scripts', 'wp_enqueue_media');
175 add_action('admin_enqueue_scripts', array($this, '_admin_scripts'));
176 }
177
178
179 public function _load_classes()
180 {
181 require_once(user_verification_plugin_dir . 'includes/classes/class-manage-verification.php');
182
183
184 require_once(user_verification_plugin_dir . 'includes/classes/class-emails.php');
185 require_once(user_verification_plugin_dir . 'includes/classes/class-settings.php');
186 require_once(user_verification_plugin_dir . 'includes/classes/class-column-users.php');
187 require_once(user_verification_plugin_dir . 'includes/classes/class-settings-tabs.php');
188 require_once(user_verification_plugin_dir . 'includes/classes/class-admin-notices.php');
189 require_once(user_verification_plugin_dir . 'includes/classes/class-email-verifier.php');
190 require_once(user_verification_plugin_dir . 'includes/classes/class-shortcodes.php');
191 require_once(user_verification_plugin_dir . 'includes/classes/class-stats.php');
192 }
193
194 public function _define_constants()
195 {
196
197 $this->_define('user_verification_plugin_name', 'User Verification');
198 $this->_define('user_verification_plugin_url', plugins_url('/', __FILE__));
199 $this->_define('user_verification_plugin_dir', plugin_dir_path(__FILE__));
200 }
201
202 private function _define($name, $value)
203 {
204 if ($name && $value)
205 if (!defined($name)) {
206 define($name, $value);
207 }
208 }
209
210
211 public function _login_scripts()
212 {
213
214 $user_verification_settings = get_option('user_verification_settings');
215 $sitekey = isset($user_verification_settings['recaptcha']['sitekey']) ? $user_verification_settings['recaptcha']['sitekey'] : '';
216 $recaptcha_version = !empty($user_verification_settings['recaptcha']['version']) ? $user_verification_settings['recaptcha']['version'] : 'v2_checkbox';
217 $default_login_page = isset($user_verification_settings['recaptcha']['default_login_page']) ? $user_verification_settings['recaptcha']['default_login_page'] : 'yes';
218 $default_lostpassword_page = isset($user_verification_settings['recaptcha']['default_lostpassword_page']) ? $user_verification_settings['recaptcha']['default_lostpassword_page'] : 'yes';
219 $default_registration_page = isset($user_verification_settings['recaptcha']['default_registration_page']) ? $user_verification_settings['recaptcha']['default_registration_page'] : 'yes';
220
221
222
223
224 wp_enqueue_script('jquery');
225
226 if ($default_login_page == 'yes') {
227 if ($recaptcha_version == 'v2_checkbox') {
228 wp_enqueue_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js', [], null);
229 } elseif ($recaptcha_version == 'v3') {
230 wp_enqueue_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js?render=' . $sitekey . '&ver=3.0', [], null);
231 }
232 }
233
234
235 if ($default_registration_page == 'yes') {
236 if ($recaptcha_version == 'v2_checkbox') {
237 wp_enqueue_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js', [], null);
238 } elseif ($recaptcha_version == 'v3') {
239 wp_enqueue_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js?render=' . $sitekey . '&ver=3.0', [], null);
240 }
241 }
242
243
244 if ($default_lostpassword_page == 'yes') {
245 if ($recaptcha_version == 'v2_checkbox') {
246 wp_enqueue_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js', [], null);
247 } elseif ($recaptcha_version == 'v3') {
248 wp_enqueue_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js?render=' . $sitekey . '&ver=3.0', [], null);
249 }
250 }
251
252
253
254
255 wp_register_script('scripts-login', plugins_url('/assets/front/js/scripts-login.js', __FILE__), array('jquery'), '', true);
256 wp_register_style('font-awesome-5', user_verification_plugin_url . 'assets/global/css/font-awesome-5.css');
257 }
258
259 public function _front_scripts()
260 {
261
262 $user_verification_settings = get_option('user_verification_settings');
263 $sitekey = isset($user_verification_settings['recaptcha']['sitekey']) ? $user_verification_settings['recaptcha']['sitekey'] : '';
264 $recaptcha_version = !empty($user_verification_settings['recaptcha']['version']) ? $user_verification_settings['recaptcha']['version'] : 'v2_checkbox';
265 $default_login_page = isset($user_verification_settings['recaptcha']['default_login_page']) ? $user_verification_settings['recaptcha']['default_login_page'] : '';
266
267
268
269
270 wp_enqueue_script('jquery');
271
272
273
274 wp_register_script('uv_front_js', plugins_url('/assets/front/js/scripts.js', __FILE__), array('jquery'));
275 wp_register_script('user_verification_magic_login_form', plugins_url('/templates/magic-login-form/index.js', __FILE__), array());
276 wp_register_style('user_verification_magic_login_form', user_verification_plugin_url . 'templates/magic-login-form/index.css');
277 wp_register_script('user_verification_otp_login_form', plugins_url('/templates/email-otp-login-form/index.js', __FILE__), array());
278 wp_register_style('user_verification_otp_login_form', user_verification_plugin_url . 'templates/email-otp-login-form/index.css');
279
280 //wp_localize_script( 'uv_front_js', 'uv_ajax', array( 'uv_ajaxurl' => admin_url( 'admin-ajax.php')));
281
282
283 wp_register_style('user_verification', user_verification_plugin_url . 'assets/front/css/style.css');
284
285
286 if ($recaptcha_version == 'v2_checkbox') {
287 wp_register_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js', [], null);
288 } elseif ($recaptcha_version == 'v2_invisible') {
289 wp_register_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js?onload=recaptchaOnload&render=explicit', [], null);
290 } elseif ($recaptcha_version == 'v3') {
291 wp_register_script('recaptcha_js', 'https://www.google.com/recaptcha/api.js?render=' . $sitekey, [], null);
292 }
293
294
295
296
297
298 wp_register_script('scripts-otp', plugins_url('/assets/front/js/scripts-otp.js', __FILE__), array('jquery'), '', true);
299 //wp_localize_script('scripts-otp', 'user_verification_ajax', array('user_verification_ajaxurl' => admin_url('admin-ajax.php')));
300
301 //global
302 wp_register_style('font-awesome-4', user_verification_plugin_url . 'assets/global/css/font-awesome-4.css');
303 wp_register_style('font-awesome-5', user_verification_plugin_url . 'assets/global/css/font-awesome-5.css');
304 }
305
306 public function _admin_scripts()
307 {
308
309 $screen = get_current_screen();
310
311 wp_enqueue_script('jquery');
312 wp_enqueue_script('jquery-ui-core');
313 wp_enqueue_script('jquery-ui-accordion');
314
315
316
317 wp_register_script('jquery.lazy', user_verification_plugin_url . 'assets/admin/js/jquery.lazy.js', array('jquery'));
318
319 wp_register_script('select2', user_verification_plugin_url . 'assets/admin/js/select2.full.js', array('jquery'));
320 wp_register_style('select2', user_verification_plugin_url . 'assets/admin/css/select2.min.css');
321
322 wp_register_style('font-awesome-4', user_verification_plugin_url . 'assets/global/css/font-awesome-4.css');
323 wp_register_style('font-awesome-5', user_verification_plugin_url . 'assets/global/css/font-awesome-5.css');
324 wp_register_style('icofont', user_verification_plugin_url . 'assets/css/icofont/icofont.min.css');
325
326
327
328 wp_register_style('settings-tabs', user_verification_plugin_url . 'assets/settings-tabs/settings-tabs.css');
329 wp_register_script('settings-tabs', user_verification_plugin_url . 'assets/settings-tabs/settings-tabs.js', array('jquery'));
330
331 //wp_register_script('form-field-dependency', user_verification_plugin_url . 'assets/admin/js/form-field-dependency.min.js', array('jquery'));
332
333
334
335
336 // Global
337
338 //var_dump($screen);
339
340 if ($screen->id == 'users_page_user_verification') {
341
342 wp_enqueue_script('uv_admin_js', plugins_url('/assets/admin/js/scripts.js', __FILE__), array('jquery'));
343 wp_localize_script('uv_admin_js', 'uv_ajax', array('uv_ajaxurl' => admin_url('admin-ajax.php')));
344 wp_localize_script('uv_admin_js', 'L10n_user_verification', array(
345 'confirm_text' => __('Are you sure?', 'user-verification'),
346 'reset_confirm_text' => __('Do you really want to reset?', 'user-verification'),
347 'mark_as_verified' => __('Mark as verified', 'user-verification'),
348 'mark_as_unverified' => __('Mark as unverified', 'user-verification'),
349 'updating' => __('Updating user', 'user-verification'),
350 ));
351
352
353 wp_enqueue_style('uv_admin_style', user_verification_plugin_url . 'assets/admin/css/style.css');
354 wp_enqueue_style('jquery-ui', user_verification_plugin_url . 'assets/global/css/jquery-ui.css');
355
356 wp_enqueue_style('select2');
357 wp_enqueue_script('select2');
358
359 wp_enqueue_style('font-awesome-5');
360
361
362 $settings_tabs_field = new settings_tabs_field();
363 $settings_tabs_field->admin_scripts();
364 }
365 }
366 }
367
368 new UserVerification();
369