PluginProbe
Loginizer / 2.0.4
Loginizer v2.0.4
2.1.0 2.0.9 2.0.8 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 All 74 releases
loginizer / main / settings / recaptcha.php

recaptcha.php in Loginizer 2.0.4, at main/settings/recaptcha.php

730 lines 32.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if(!defined('ABSPATH')){
4 die('Hacking Attempt!');
5 }
6
7 //---------------------
8 // Admin Menu Pro Pages
9 //---------------------
10
11 // Loginizer - reCaptcha Page
12 function loginizer_page_recaptcha(){
13
14 global $loginizer, $lz_error, $lz_env;
15
16 if(!current_user_can('manage_options')){
17 wp_die('Sorry, but you do not have permissions to change settings.');
18 }
19
20 if(!loginizer_is_premium() && count($_POST) > 0){
21 $lz_error['not_in_free'] = __('This feature is not available in the Free version. <a href="'.LOGINIZER_PRICING_URL.'" target="_blank" style="text-decoration:none; color:green;"><b>Upgrade to Pro</b></a>', 'loginizer');
22 return loginizer_page_recaptcha_T();
23 }
24
25 /* Make sure post was from this page */
26 if(count($_POST) > 0){
27 check_admin_referer('loginizer-options');
28 }
29
30 // Themes
31 $lz_env['theme']['light'] = 'Light';
32 $lz_env['theme']['dark'] = 'Dark';
33
34 // Langs
35 $lz_env['lang'][''] = 'Auto Detect';
36 $lz_env['lang']['ar'] = 'Arabic';
37 $lz_env['lang']['bg'] = 'Bulgarian';
38 $lz_env['lang']['ca'] = 'Catalan';
39 $lz_env['lang']['zh-CN'] = 'Chinese (Simplified)';
40 $lz_env['lang']['zh-TW'] = 'Chinese (Traditional)';
41 $lz_env['lang']['hr'] = 'Croatian';
42 $lz_env['lang']['cs'] = 'Czech';
43 $lz_env['lang']['da'] = 'Danish';
44 $lz_env['lang']['nl'] = 'Dutch';
45 $lz_env['lang']['en-GB'] = 'English (UK)';
46 $lz_env['lang']['en'] = 'English (US)';
47 $lz_env['lang']['fil'] = 'Filipino';
48 $lz_env['lang']['fi'] = 'Finnish';
49 $lz_env['lang']['fr'] = 'French';
50 $lz_env['lang']['fr-CA'] = 'French (Canadian)';
51 $lz_env['lang']['de'] = 'German';
52 $lz_env['lang']['de-AT'] = 'German (Austria)';
53 $lz_env['lang']['de-CH'] = 'German (Switzerland)';
54 $lz_env['lang']['el'] = 'Greek';
55 $lz_env['lang']['iw'] = 'Hebrew';
56 $lz_env['lang']['hi'] = 'Hindi';
57 $lz_env['lang']['hu'] = 'Hungarain';
58 $lz_env['lang']['id'] = 'Indonesian';
59 $lz_env['lang']['it'] = 'Italian';
60 $lz_env['lang']['ja'] = 'Japanese';
61 $lz_env['lang']['ko'] = 'Korean';
62 $lz_env['lang']['lv'] = 'Latvian';
63 $lz_env['lang']['lt'] = 'Lithuanian';
64 $lz_env['lang']['no'] = 'Norwegian';
65 $lz_env['lang']['fa'] = 'Persian';
66 $lz_env['lang']['pl'] = 'Polish';
67 $lz_env['lang']['pt'] = 'Portuguese';
68 $lz_env['lang']['pt-BR'] = 'Portuguese (Brazil)';
69 $lz_env['lang']['pt-PT'] = 'Portuguese (Portugal)';
70 $lz_env['lang']['ro'] = 'Romanian';
71 $lz_env['lang']['ru'] = 'Russian';
72 $lz_env['lang']['sr'] = 'Serbian';
73 $lz_env['lang']['sk'] = 'Slovak';
74 $lz_env['lang']['sl'] = 'Slovenian';
75 $lz_env['lang']['es'] = 'Spanish';
76 $lz_env['lang']['es-419'] = 'Spanish (Latin America)';
77 $lz_env['lang']['sv'] = 'Swedish';
78 $lz_env['lang']['th'] = 'Thai';
79 $lz_env['lang']['tr'] = 'Turkish';
80 $lz_env['lang']['uk'] = 'Ukrainian';
81 $lz_env['lang']['vi'] = 'Vietnamese';
82
83 // Sizes
84 $lz_env['size']['normal'] = 'Normal';
85 $lz_env['size']['compact'] = 'Compact';
86
87 // Size cloudflare (turnstile)
88 $lz_env['turnstile_size']['normal'] = 'Normal';
89 $lz_env['turnstile_size']['compact'] = 'Compact';
90 $lz_env['turnstile_size']['flexible'] = 'Flexible';
91
92 // reCAPTCHA Domains
93 $lz_env['captcha_domains']['www.google.com'] = 'google.com';
94 $lz_env['captcha_domains']['www.recaptcha.net'] = 'recaptcha.net';
95
96 if(isset($_POST['save_lz'])){
97
98 // Clear captcha
99 if(empty($_POST['captcha_status'])){
100
101 // Save the options
102 update_option('loginizer_captcha', '');
103
104 // Mark as saved
105 $GLOBALS['lz_cleared'] = true;
106
107 }else{
108
109 $option['captcha_status'] = (int) lz_optpost('captcha_status');
110
111 //hcaptcha
112 $option['hcaptcha_secretkey'] = lz_optpost('hcaptcha_secretkey');
113 $option['hcaptcha_sitekey'] = lz_optpost('hcaptcha_sitekey');
114 $option['hcaptcha_lang'] = lz_optpost('hcaptcha_lang');
115 $option['hcaptcha_theme'] = lz_optpost('hcaptcha_theme');
116 $option['hcaptcha_size'] = lz_optpost('hcaptcha_size');
117
118 // Google Captcha
119 $option['captcha_type'] = lz_optpost('captcha_type');
120 $option['captcha_key'] = lz_optpost('captcha_key');
121 $option['captcha_secret'] = lz_optpost('captcha_secret');
122 $option['captcha_theme'] = lz_optpost('captcha_theme');
123 $option['captcha_size'] = lz_optpost('captcha_size');
124 $option['captcha_lang'] = lz_optpost('captcha_lang');
125 $option['captcha_domain'] = lz_optpost('captcha_domain');
126 $option['captcha_score_threshold'] = lz_optpost('captcha_score_threshold');
127 if(!is_numeric($option['captcha_score_threshold']) || $option['captcha_score_threshold'] > '1.0' || $option['captcha_score_threshold'] < '0.0'){
128 $option['captcha_score_threshold'] = '0.5';
129 }
130
131 $option['captcha_disable_btn'] = lz_optpost('captcha_disable_btn'); // Only for v2 reCaptcha Checkbox
132
133 // Cloudflare Turnstil Captcha
134 $option['turn_captcha_key'] = lz_optpost('turn_captcha_key');
135 $option['turn_captcha_secret'] = lz_optpost('turn_captcha_secret');
136 $option['turn_captcha_theme'] = lz_optpost('turn_captcha_theme');
137 $option['turn_captcha_size'] = lz_optpost('turn_captcha_size');
138 $option['turn_captcha_lang'] = lz_optpost('turn_captcha_lang');
139
140 // Math Captcha
141 $option['captcha_text'] = lz_optpost('captcha_text');
142 $option['captcha_time'] = (int) lz_optpost('captcha_time');
143 $option['captcha_words'] = (int) lz_optpost('captcha_words');
144 $option['captcha_add'] = (int) lz_optpost('captcha_add');
145 $option['captcha_subtract'] = (int) lz_optpost('captcha_subtract');
146 $option['captcha_multiply'] = (int) lz_optpost('captcha_multiply');
147 $option['captcha_divide'] = (int) lz_optpost('captcha_divide');
148
149 // Checkboxes
150 $option['captcha_user_hide'] = (int) lz_optpost('captcha_user_hide');
151 $option['captcha_login'] = (int) lz_optpost('captcha_login');
152 $option['captcha_lostpass'] = (int) lz_optpost('captcha_lostpass');
153 $option['captcha_resetpass'] = (int) lz_optpost('captcha_resetpass');
154 $option['captcha_register'] = (int) lz_optpost('captcha_register');
155 $option['captcha_comment'] = (int) lz_optpost('captcha_comment');
156 $option['captcha_wc_checkout'] = (int) lz_optpost('captcha_wc_checkout');
157 $option['captcha_wc_block_checkout'] = isset($_POST['captcha_wc_block_checkout']);
158 $option['captcha_wc_checkout_pos'] = lz_optpost('captcha_wc_checkout_pos');
159
160 // Are we to use Math Captcha ?
161 if(!empty($_POST['captcha_status']) && $_POST['captcha_status'] == 2){
162
163 $option['captcha_no_google'] = 1;
164
165 // Make the checks
166 if(strlen($option['captcha_text']) < 1){
167 $lz_error['captcha_text'] = __('The Captcha key was not submitted', 'loginizer');
168 }
169
170 }else if(!empty($_POST['captcha_status']) && $_POST['captcha_status'] == 3){
171
172 if(strlen($option['hcaptcha_sitekey']) < 32 || strlen($option['hcaptcha_sitekey']) > 50){
173 $lz_error['hcaptcha_sitekey'] = __('The hCAPTCHA key is invalid', 'loginizer');
174 }
175
176 // Is secret valid ?
177 if(strlen($option['hcaptcha_secretkey']) < 32 || strlen($option['hcaptcha_secretkey']) > 50){
178 $lz_error['hcaptcha_secretkey'] = __('The hCAPTCHA secret is invalid', 'loginizer');
179 }
180
181 // Is theme valid ?
182 if(empty($lz_env['theme'][$option['hcaptcha_theme']])){
183 $lz_error['hcaptcha_theme'] = __('The hCaptcha theme is invalid', 'loginizer');
184 }
185
186 // Is size valid ?
187 if(empty($lz_env['size'][$option['hcaptcha_size']])){
188 $lz_error['hcaptcha_size'] = __('The Turnstile size is invalid', 'loginizer');
189 }
190
191 // Is lang valid ?
192 if(empty($lz_env['lang'][$option['turn_captcha_lang']])){
193 $lz_error['turn_captcha_lang'] = __('The Turnstile language is invalid', 'loginizer');
194 }
195
196 }else if(!empty($_POST['captcha_status']) && $_POST['captcha_status'] == 4){
197
198 if(strlen($option['turn_captcha_key']) < 24 || strlen($option['turn_captcha_key']) > 50){
199 $lz_error['turn_captcha_key'] = __('The Turnstile Site key is invalid', 'loginizer');
200 }
201
202 // Is secret valid ?
203 if(strlen($option['turn_captcha_secret']) < 32 || strlen($option['turn_captcha_secret']) > 50){
204 $lz_error['turn_captcha_secret'] = __('The Turnstile secret key is invalid', 'loginizer');
205 }
206
207 // Is theme valid ?
208 if(empty($lz_env['theme'][$option['turn_captcha_theme']])){
209 $lz_error['turn_captcha_theme'] = __('The Turnstile theme is invalid', 'loginizer');
210 }
211
212 // Is size valid ?
213 if(empty($lz_env['turnstile_size'][$option['turn_captcha_size']])){
214 $lz_error['turn_captcha_size'] = __('The Turnstile size is invalid', 'loginizer');
215 }
216
217 // Is lang valid ?
218 if(empty($lz_env['lang'][$option['turn_captcha_lang']])){
219 $lz_error['turn_captcha_lang'] = __('The Turnstile language is invalid', 'loginizer');
220 }
221
222 }else{
223
224 // Make the checks
225 if(strlen($option['captcha_key']) < 32 || strlen($option['captcha_key']) > 50){
226 $lz_error['captcha_key'] = __('The reCAPTCHA key is invalid', 'loginizer');
227 }
228
229 // Is secret valid ?
230 if(strlen($option['captcha_secret']) < 32 || strlen($option['captcha_secret']) > 50){
231 $lz_error['captcha_secret'] = __('The reCAPTCHA secret is invalid', 'loginizer');
232 }
233
234 // Is theme valid ?
235 if(empty($lz_env['theme'][$option['captcha_theme']])){
236 $lz_error['captcha_theme'] = __('The reCAPTCHA theme is invalid', 'loginizer');
237 }
238
239 // Is size valid ?
240 if(empty($lz_env['size'][$option['captcha_size']])){
241 $lz_error['captcha_size'] = __('The reCAPTCHA size is invalid', 'loginizer');
242 }
243
244 // Is lang valid ?
245 if(empty($lz_env['lang'][$option['captcha_lang']])){
246 $lz_error['captcha_lang'] = __('The reCAPTCHA language is invalid', 'loginizer');
247 }
248
249 if(empty($lz_env['captcha_domains'][$option['captcha_domain']])){
250 $lz_error['captcha_domain'] = __('The reCAPTCHA domain is invalid', 'loginizer');
251 }
252
253 }
254
255 // Is there an error ?
256 if(!empty($lz_error)){
257 return loginizer_page_recaptcha_T();
258 }
259
260 // Save the options
261 update_option('loginizer_captcha', $option);
262
263 // Mark as saved
264 $GLOBALS['lz_saved'] = true;
265 }
266
267 }
268
269 // Call the theme
270 loginizer_page_recaptcha_T();
271
272 }
273
274 // Loginizer - reCaptcha Page Theme
275 function loginizer_page_recaptcha_T(){
276
277 global $loginizer, $lz_error, $lz_env;
278
279 // Universal header
280 loginizer_page_header('reCAPTCHA Settings');
281
282 loginizer_feature_available('reCAPTCHA');
283
284 // Saved ?
285 if(!empty($GLOBALS['lz_saved'])){
286 echo '<div id="message" class="updated"><p>'. __('The settings were saved successfully', 'loginizer'). '</p></div><br />';
287 }
288
289 // Cleared ?
290 if(!empty($GLOBALS['lz_cleared'])){
291 echo '<div id="message" class="updated"><p>'. __('reCAPTCHA has been disabled !', 'loginizer'). '</p></div><br />';
292 }
293
294 // Any errors ?
295 if(!empty($lz_error)){
296 lz_report_error($lz_error);echo '<br />';
297 }
298
299 ?>
300
301 <style>
302 input[type="text"], textarea, select {
303 width: 70%;
304 }
305 </style>
306
307 <div id="" class="postbox">
308
309 <div class="postbox-header">
310 <h2 class="hndle ui-sortable-handle">
311 <span><?php echo __('reCAPTCHA Settings', 'loginizer'); ?></span>
312 </h2>
313 </div>
314
315 <div class="inside">
316
317 <form action="" method="post" enctype="multipart/form-data" loginizer-premium-only="1">
318 <?php wp_nonce_field('loginizer-options'); ?>
319 <table class="form-table">
320 <tr>
321 <td scope="row" valign="top" style="width:400px !important;"><label for="captcha_status"><b><?php echo __('Captcha Status', 'loginizer'); ?></b></label></td>
322 <td>
323 <select name="captcha_status" id="captcha_status" onchange="lz_captcha_status();">
324 <?php
325 echo '<option '.lz_POSTselect('captcha_status', 0, (empty($loginizer['captcha_key']) && empty($loginizer['captcha_no_google']) && empty($loginizer['captcha_status']) ? true : false)).' value="0">'.__('Disabled', 'loginizer').'</option>
326 <option '.lz_POSTselect('captcha_status', 1, (!empty($loginizer['captcha_key']) ? true : false)).' value="1">'.__('Google reCAPTCHA', 'loginizer').'</option>
327 <option '.lz_POSTselect('captcha_status', 2, (!empty($loginizer['captcha_no_google']) ? true : false)).' value="2">'.__('Math Captcha', 'loginizer').'</option>
328 <option '.lz_POSTselect('captcha_status', 3, ((!empty($loginizer['captcha_status']) && $loginizer['captcha_status'] == 3) ? true : false)).' value="3">'.__('hCAPTCHA', 'loginizer').'</option>
329 <option '.lz_POSTselect('captcha_status', 4, ((!empty($loginizer['captcha_status']) && $loginizer['captcha_status'] == 4) ? true : false)).' value="4">'.__('Cloudflare Turnstile', 'loginizer').'</option>';
330 ?>
331 </select>
332 </td>
333 </tr>
334
335 <tr class="hcaptcha">
336 <td scope="row" valign="top"><label for="hcaptcha_sitekey"><b><?php echo __('Site Key', 'loginizer'); ?></b></label><br>
337 <?php echo __('Make sure you enter the correct keys as per the reCAPTCHA type selected above', 'loginizer'); ?>
338 </td>
339 <td>
340 <input type="text" size="50" value="<?php echo lz_optpost('hcaptcha_sitekey', (!empty($loginizer['hcaptcha_sitekey']) ? $loginizer['hcaptcha_sitekey'] : '')); ?>" name="hcaptcha_sitekey" id="hcaptcha_sitekey" /><br />
341 <?php echo __('Get the Site Key and Secret Key from <a href="https://www.hcaptcha.com/" target="_blank">hcaptcha</a>', 'loginizer'); ?>
342 </td>
343 </tr>
344
345 <tr class="hcaptcha">
346 <td scope="row" valign="top"><label for="hcaptcha_secretkey"><b><?php echo __('Secret Key', 'loginizer'); ?></b></label></td>
347 <td>
348 <input type="text" size="50" value="<?php echo lz_optpost('hcaptcha_secretkey', (!empty($loginizer['hcaptcha_secretkey']) ? $loginizer['hcaptcha_secretkey'] : '')); ?>" name="hcaptcha_secretkey" id="hcaptcha_secretkey" />
349 </td>
350 </tr>
351 <tr class="hcaptcha">
352 <td scope="row" valign="top"><label for="hcaptcha_theme"><b><?php echo __('Theme', 'loginizer'); ?></b></label></td>
353 <td>
354 <select name="hcaptcha_theme" id="hcaptcha_theme">
355 <?php
356 foreach($lz_env['theme'] as $k => $v){
357 echo '<option '.lz_POSTselect('hcaptcha_theme', $k, ((!empty($loginizer['hcaptcha_theme']) && $loginizer['hcaptcha_theme'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</value>';
358 }
359 ?>
360 </select>
361 </td>
362 </tr>
363 <tr class="hcaptcha">
364 <td scope="row" valign="top"><label for="hcaptcha_lang"><b><?php echo __('Language', 'loginizer'); ?></b></label></td>
365 <td>
366 <select name="hcaptcha_lang" id="hcaptcha_lang">
367 <?php
368 foreach($lz_env['lang'] as $k => $v){
369 echo '<option '.lz_POSTselect('hcaptcha_lang', $k, ((!empty($loginizer['hcaptcha_lang']) && $loginizer['hcaptcha_lang'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_attr($v).'</value>';
370 }
371 ?>
372 </select>
373 </td>
374 </tr>
375
376 <tr class="hcaptcha">
377 <td scope="row" valign="top"><label for="hcaptcha_size"><b><?php echo __('Size', 'loginizer'); ?></b></label></td>
378 <td>
379 <select name="hcaptcha_size" id="hcaptcha_size">
380 <?php
381 foreach($lz_env['size'] as $k => $v){
382 echo '<option '.lz_POSTselect('hcaptcha_size', $k, ((!empty($loginizer['hcaptcha_size']) && $loginizer['hcaptcha_size'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</value>';
383 }
384 ?>
385 </select>
386 </td>
387 </tr>
388
389
390 <tr class="lz_google_cap">
391 <td scope="row" valign="top"><label><b><?php echo __('reCAPTCHA type', 'loginizer'); ?></b></label><br>
392 <?php echo __('Choose the type of reCAPTCHA', 'loginizer'); ?><br />
393 <?php echo __('<a href="https://developers.google.com/recaptcha/docs/versions" target="_blank">See Site Types for more details</a>', 'loginizer'); ?>
394 </td>
395 <td>
396 <input type="radio" value="v3" onchange="google_recaptcha_type()" <?php echo lz_POSTradio('captcha_type', 'v3', (!empty($loginizer['captcha_type']) ? $loginizer['captcha_type'] : '')); ?> name="captcha_type" id="captcha_type_v3" /> <label for="captcha_type_v3"><?php echo __('reCAPTCHA v3', 'loginizer'); ?></label><br /><br />
397 <input type="radio" value="" onchange="google_recaptcha_type()" <?php echo lz_POSTradio('captcha_type', '', (!empty($loginizer['captcha_type']) ? $loginizer['captcha_type'] : '')); ?> name="captcha_type" id="captcha_type_v2" /> <label for="captcha_type_v2"><?php echo __('reCAPTCHA v2 - Checkbox', 'loginizer'); ?></label><br /><br />
398 <input type="radio" value="v2_invisible" onchange="google_recaptcha_type()" <?php echo lz_POSTradio('captcha_type', 'v2_invisible', (!empty($loginizer['captcha_type']) ? $loginizer['captcha_type'] : '')); ?> name="captcha_type" id="captcha_type_v2_invisible" /> <label for="captcha_type_v2_invisible"><?php echo __('reCAPTCHA v2 - Invisible', 'loginizer'); ?></label><br />
399 </td>
400 </tr>
401 <tr class="lz_google_cap">
402 <td scope="row" valign="top"><label for="captcha_key"><b><?php echo __('Site Key', 'loginizer'); ?></b></label><br>
403 <?php echo __('Make sure you enter the correct keys as per the reCAPTCHA type selected above', 'loginizer'); ?>
404 </td>
405 <td>
406 <input type="text" size="50" value="<?php echo lz_optpost('captcha_key', (!empty($loginizer['captcha_key']) ? $loginizer['captcha_key'] : '')); ?>" name="captcha_key" id="captcha_key" /><br />
407 <?php echo __('Get the Site Key and Secret Key from <a href="https://www.google.com/recaptcha/admin/" target="_blank">Google</a>', 'loginizer'); ?>
408 </td>
409 </tr>
410 <tr class="lz_google_cap">
411 <td scope="row" valign="top"><label for="captcha_secret"><b><?php echo __('Secret Key', 'loginizer'); ?></b></label></td>
412 <td>
413 <input type="text" size="50" value="<?php echo lz_optpost('captcha_secret', (!empty($loginizer['captcha_secret']) ? $loginizer['captcha_secret'] : '')); ?>" name="captcha_secret" id="captcha_secret" />
414 </td>
415 </tr>
416 <tr class="lz_google_cap">
417 <td scope="row" valign="top"><label for="captcha_theme"><b><?php echo __('Theme', 'loginizer'); ?></b></label></td>
418 <td>
419 <select name="captcha_theme" id="captcha_theme">
420 <?php
421 foreach($lz_env['theme'] as $k => $v){
422 echo '<option '.lz_POSTselect('captcha_theme', $k, ((!empty($loginizer['captcha_theme']) && $loginizer['captcha_theme'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</option>';
423 }
424 ?>
425 </select>
426 </td>
427 </tr>
428 <tr class="lz_google_cap">
429 <td scope="row" valign="top"><label for="captcha_lang"><b><?php echo __('Language', 'loginizer'); ?></b></label></td>
430 <td>
431 <select name="captcha_lang" id="captcha_lang">
432 <?php
433 foreach($lz_env['lang'] as $k => $v){
434 echo '<option '.lz_POSTselect('captcha_lang', $k, ((!empty($loginizer['captcha_lang']) && $loginizer['captcha_lang'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</option>';
435 }
436 ?>
437 </select>
438 </td>
439 </tr>
440 <tr class="lz_google_cap lz_google_cap_size">
441 <td scope="row" valign="top"><label for="captcha_size"><b><?php echo __('Size', 'loginizer'); ?></b></label></td>
442 <td>
443 <select name="captcha_size" id="captcha_size">
444 <?php
445 foreach($lz_env['size'] as $k => $v){
446 echo '<option '.lz_POSTselect('captcha_size', $k, ((!empty($loginizer['captcha_size']) && $loginizer['captcha_size'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</option>';
447 }
448 ?>
449 </select>
450 </td>
451 </tr>
452 <tr class="lz_google_cap">
453 <td scope="row" valign="top">
454 <label for="captcha_domain"><b><?php echo __('reCAPTCHA Domain', 'loginizer'); ?></b></label><br>
455 <?php echo __('If Google is not accessible or blocked in your country select other one', 'loginizer'); ?>
456 </td>
457 <td>
458 <select name="captcha_domain" id="captcha_domain">
459 <?php
460 foreach($lz_env['captcha_domains'] as $k => $v){
461 echo '<option '.lz_POSTselect('captcha_domain', $k, ((!empty($loginizer['captcha_domain']) && $loginizer['captcha_domain'] == $k) ? true : false)).' value="'.$k.'">'.$v.($k == 'www.google.com' ? ' '.__('(Default)', 'loginizer') : '').'</option>';
462 }
463 ?>
464 </select>
465 </td>
466 </tr>
467
468 <tr class="lz_google_cap lz_google_cap_v3">
469 <td scope="row" valign="top">
470 <label for="captcha_domain"><b><?php echo __('reCaptcha threshold', 'loginizer'); ?></b></label><br>
471 <?php echo __('Google returns a score between 0.0 and 1.0 — with 0.0 meaning it\'s likely a bot and 1.0 meaning it\'s likely a human. The default threshold is 0.5, but you can change it based on your needs.', 'loginizer'); ?>
472 </td>
473 <td>
474 <input type="number" max="1.0" min="0.0" step="0.1" name="captcha_score_threshold" id="captcha_score_threshold" value="<?php echo (!empty($loginizer['captcha_score_threshold']) ? esc_attr($loginizer['captcha_score_threshold']) : '0.5'); ?>">
475 </select>
476 </td>
477 </tr>
478
479 <tr class="lz_turnstile_cap">
480 <td scope="row" valign="top"><label for="turn_captcha_key"><b><?php echo __('Site Key', 'loginizer'); ?></b></label><br>
481 </td>
482 <td>
483 <input type="text" size="50" value="<?php echo lz_optpost('turn_captcha_key', (!empty($loginizer['turn_captcha_key']) ? $loginizer['turn_captcha_key'] : '')); ?>" name="turn_captcha_key" id="turn_captcha_key" /><br />
484 <?php echo __('Get the Site Key and Secret Key from <a href="https://dash.cloudflare.com/sign-up?to=/:account/turnstile" target="_blank">Cloudflare Turnstile</a>', 'loginizer'); ?>
485 </td>
486 </tr>
487 <tr class="lz_turnstile_cap">
488 <td scope="row" valign="top"><label for="turn_captcha_secret"><b><?php echo __('Secret Key', 'loginizer'); ?></b></label></td>
489 <td>
490 <input type="password" size="50" value="<?php echo lz_optpost('turn_captcha_secret', (!empty($loginizer['turn_captcha_secret']) ? $loginizer['turn_captcha_secret'] : '')); ?>" name="turn_captcha_secret" id="turn_captcha_secret" />
491 </td>
492 </tr>
493 <tr class="lz_turnstile_cap">
494 <td scope="row" valign="top"><label for="turn_captcha_theme"><b><?php echo __('Theme', 'loginizer'); ?></b></label></td>
495 <td>
496 <select name="turn_captcha_theme" id="turn_captcha_theme">
497 <?php
498 foreach($lz_env['theme'] as $k => $v){
499 echo '<option '.lz_POSTselect('turn_captcha_theme', $k, ((!empty($loginizer['turn_captcha_theme']) && $loginizer['turn_captcha_theme'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</option>';
500 }
501 ?>
502 </select>
503 </td>
504 </tr>
505
506 <tr class="lz_turnstile_cap">
507 <td scope="row" valign="top"><label for="turn_captcha_lang"><b><?php echo __('Language', 'loginizer'); ?></b></label></td>
508 <td>
509 <select name="turn_captcha_lang" id="turn_captcha_lang">
510 <?php
511 foreach($lz_env['lang'] as $k => $v){
512 echo '<option '.lz_POSTselect('turn_captcha_lang', $k, ((!empty($loginizer['turn_captcha_lang']) && $loginizer['turn_captcha_lang'] == $k) ? true : false)).' value="'.$k.'">'.$v.'</option>';
513 }
514 ?>
515 </select>
516 </td>
517 </tr>
518 <tr class="lz_turnstile_cap">
519 <td scope="row" valign="top"><label for="turn_captcha_size"><b><?php echo __('Size', 'loginizer'); ?></b></label></td>
520 <td>
521 <select name="turn_captcha_size" id="turn_captcha_size">
522 <?php
523 foreach($lz_env['turnstile_size'] as $k => $v){
524 echo '<option '.lz_POSTselect('turn_captcha_size', $k, ((!empty($loginizer['turn_captcha_size']) && $loginizer['turn_captcha_size'] == $k) ? true : false)).' value="'.$k.'">'.$v.'</option>';
525 }
526 ?>
527 </select>
528 </td>
529 </tr>
530
531 <tr class="lz_math_cap">
532 <td scope="row" valign="top">
533 <label for="captcha_text"><b><?php echo __('Captcha Text', 'loginizer'); ?></b></label><br>
534 <?php echo __('The text to be shown for the Captcha Field', 'loginizer'); ?>
535 </td>
536 <td>
537 <input type="text" size="30" value="<?php echo lz_optpost('captcha_text', (!empty($loginizer['captcha_text']) ? $loginizer['captcha_text'] : '')); ?>" name="captcha_text" id="captcha_text" />
538 </td>
539 </tr>
540 <tr class="lz_math_cap">
541 <td scope="row" valign="top">
542 <label for="captcha_time"><b><?php echo __('Captcha Time', 'loginizer'); ?></b></label><br>
543 <?php echo __('Enter the number of seconds, a user has to enter captcha value.', 'loginizer'); ?>
544 </td>
545 <td>
546 <input type="text" size="30" value="<?php echo lz_optpost('captcha_time', (!empty($loginizer['captcha_time']) ? $loginizer['captcha_time'] : '')); ?>" name="captcha_time" id="captcha_time" />
547 </td>
548 </tr>
549 <tr class="lz_math_cap">
550 <td scope="row" valign="top">
551 <label for="captcha_words"><b><?php echo __('Display Captcha in Words', 'loginizer'); ?></b></label><br>
552 <?php echo __('If selected the Captcha will be displayed in words rather than numbers', 'loginizer'); ?>
553 </td>
554 <td>
555 <input type="checkbox" value="1" name="captcha_words" id="captcha_words" <?php echo lz_POSTchecked('captcha_words', (empty($loginizer['captcha_words']) ? false : true));?> />
556 </td>
557 </tr>
558 <tr class="lz_math_cap">
559 <td scope="row" valign="top" style="vertical-align: top !important;">
560 <label><b><?php echo __('Mathematical operations', 'loginizer'); ?></b></label><br>
561 <?php echo __('The Mathematical operations to use for Captcha', 'loginizer'); ?>
562 </td>
563 <td valign="top">
564 <table class="wp-list-table fixed users" cellpadding="8" cellspacing="1">
565 <?php echo '
566 <tr>
567 <td><label for="captcha_add">'.__('Addition (+)', 'loginizer').'</label></td>
568 <td><input type="checkbox" value="1" name="captcha_add" id="captcha_add" '.lz_POSTchecked('captcha_add', (empty($loginizer['captcha_add']) ? false : true)).' /></td>
569 </tr>
570 <tr>
571 <td><label for="captcha_subtract">'.__('Subtraction (-)', 'loginizer').'</label></td>
572 <td><input type="checkbox" value="1" name="captcha_subtract" id="captcha_subtract" '.lz_POSTchecked('captcha_subtract', (empty($loginizer['captcha_subtract']) ? false : true)).' /></td>
573 </tr>
574 <tr>
575 <td><label for="captcha_multiply">'.__('Multiplication (x)', 'loginizer').'</label></td>
576 <td><input type="checkbox" value="1" name="captcha_multiply" id="captcha_multiply" '.lz_POSTchecked('captcha_multiply', (empty($loginizer['captcha_multiply']) ? false : true)).' /></td>
577 </tr>
578 <tr>
579 <td><label for="captcha_divide">'.__('Division (÷)', 'loginizer').'</label></td>
580 <td><input type="checkbox" value="1" name="captcha_divide" id="captcha_divide" '.lz_POSTchecked('captcha_divide', (empty($loginizer['captcha_divide']) ? false : true)).' /></td>
581 </tr>';
582 ?>
583 </table>
584 </td>
585 </tr>
586 <tr class="lz_cap">
587 <td scope="row" valign="top"><label><b><?php echo __('Show Captcha On', 'loginizer'); ?></b></label></td>
588 <td valign="top">
589 <table class="wp-list-table fixed users" cellpadding="8" cellspacing="1">
590 <?php echo '
591 <tr>
592 <td><label for="captcha_login">'.__('Login Form', 'loginizer').'</label></td>
593 <td><input type="checkbox" value="1" name="captcha_login" id="captcha_login" '.lz_POSTchecked('captcha_login', (empty($loginizer['captcha_login']) ? false : true)).' /></td>
594 </tr>
595 <tr>
596 <td><label for="captcha_lostpass">'.__('Lost Password Form', 'loginizer').'</label></td>
597 <td><input type="checkbox" value="1" name="captcha_lostpass" id="captcha_lostpass" '.lz_POSTchecked('captcha_lostpass', (empty($loginizer['captcha_lostpass']) ? false : true)).' /></td>
598 </tr>
599 <tr>
600 <td><label for="captcha_resetpass">'.__('Reset Password Form', 'loginizer').'</label></td>
601 <td><input type="checkbox" value="1" name="captcha_resetpass" id="captcha_resetpass" '.lz_POSTchecked('captcha_resetpass', (empty($loginizer['captcha_resetpass']) ? false : true)).' /></td>
602 </tr>
603 <tr>
604 <td><label for="captcha_register">'.__('Registration Form', 'loginizer').'</label></td>
605 <td><input type="checkbox" value="1" name="captcha_register" id="captcha_register" '.lz_POSTchecked('captcha_register', (empty($loginizer['captcha_register']) ? false : true)).' /></td>
606 </tr>
607 <tr>
608 <td><label for="captcha_comment">'.__('Comment Form', 'loginizer').'</label></td>
609 <td><input type="checkbox" value="1" name="captcha_comment" id="captcha_comment" '.lz_POSTchecked('captcha_comment', (empty($loginizer['captcha_comment']) ? false : true)).' /></td>
610 </tr>';
611
612 if(!defined('SITEPAD')){
613
614 echo '<tr>
615 <td><label for="captcha_wc_checkout">'.__('WooCommerce Checkout', 'loginizer').'</label></td>
616 <td><input type="checkbox" value="1" name="captcha_wc_checkout" id="captcha_wc_checkout" '.lz_POSTchecked('captcha_wc_checkout', (empty($loginizer['captcha_wc_checkout']) ? false : true)).' /></td>
617 </tr>
618 <tr>
619 <td><label for="captcha_wc_block_checkout">'.__('WooCommerce Block based Checkout', 'loginizer').'</label></td>
620 <td><input type="checkbox" value="1" name="captcha_wc_block_checkout" id="captcha_wc_block_checkout" '.lz_POSTchecked('captcha_wc_block_checkout', (!empty($loginizer['captcha_wc_block_checkout']))).' /></td>
621 </tr>
622
623 <tr>
624 <td><label for="captcha_wc_checkout_pos">'.__('WooCommerce Checkout Position', 'loginizer').'</label></td>
625 <td>
626 <select value="'.lz_optpost('captcha_wc_checkout_pos').'" name="captcha_wc_checkout_pos" id="captcha_wc_checkout_pos" />
627 <option value="" '.(isset($loginizer['captcha_wc_checkout_pos']) ? selected($loginizer['captcha_wc_checkout_pos'], '', false) : '').'>'.__('Before Payment', 'loginizer').'</option>
628 <option value="before_submit" '.(isset($loginizer['captcha_wc_checkout_pos']) ? selected($loginizer['captcha_wc_checkout_pos'], 'before_submit', false) : '').'>'.__('Before Order Button', 'loginizer').'</option>
629 </select>
630 </td>
631 </tr>';
632 }
633
634 ?>
635 </table>
636 </td>
637 </tr>
638 <tr class="lz_google_cap lz_google_cap_size">
639 <td scope="row" valign="top"><label for="captcha_disable_btn"><b><?php echo __('Disable Login Button', 'loginizer'); ?></b></label></td>
640 <td>
641 <input type="checkbox" value="1" name="captcha_disable_btn" id="captcha_disable_btn" <?php echo lz_POSTchecked('captcha_disable_btn', (empty($loginizer['captcha_disable_btn']) ? false : true)); ?> />
642 </td>
643 </tr>
644 <tr class="lz_cap">
645 <td scope="row" valign="top"><label for="captcha_user_hide"><b><?php echo __('Hide CAPTCHA for logged in Users', 'loginizer'); ?></b></label></td>
646 <td>
647 <input type="checkbox" value="1" name="captcha_user_hide" id="captcha_user_hide" <?php echo lz_POSTchecked('captcha_user_hide', (empty($loginizer['captcha_user_hide']) ? false : true)); ?> />
648 </td>
649 </tr>
650 </table><br />
651 <center><input name="save_lz" class="button button-primary action" value="<?php echo __('Save Settings','loginizer'); ?>" type="submit" /></center>
652 </form>
653
654 </div>
655 </div>
656 <br />
657
658 <script type="text/javascript">
659
660 function lz_captcha_status(){
661
662 var cur_captcha_status = jQuery("#captcha_status option:selected").val();
663
664 if(cur_captcha_status == 1){
665 jQuery(".lz_google_cap").show();
666 jQuery(".lz_math_cap").hide();
667 jQuery('.lz_turnstile_cap').hide();
668 jQuery(".lz_cap").show();
669 google_recaptcha_type();
670 jQuery(".hcaptcha").hide();
671
672 }else if(cur_captcha_status == 2){
673 jQuery(".lz_google_cap").hide();
674 jQuery(".lz_math_cap").show();
675 jQuery('.lz_turnstile_cap').hide();
676 jQuery(".lz_cap").show();
677 jQuery(".hcaptcha").hide();
678
679 }else if(cur_captcha_status == 3){
680 jQuery(".hcaptcha").show();
681 jQuery(".lz_math_cap").hide();
682 jQuery('.lz_turnstile_cap').hide();
683 jQuery(".lz_cap").show();
684 jQuery(".lz_google_cap").hide();
685 }else if(cur_captcha_status == 4){
686 jQuery(".hcaptcha").hide();
687 jQuery(".lz_math_cap").hide();
688 jQuery('.lz_turnstile_cap').show();
689 jQuery(".lz_cap").show();
690 jQuery(".lz_google_cap").hide();
691 }else{
692 jQuery(".hcaptcha").hide();
693 jQuery(".lz_google_cap").hide();
694 jQuery(".lz_math_cap").hide();
695 jQuery('.lz_turnstile_cap').hide();
696 jQuery(".lz_cap").hide();
697 }
698
699 }
700
701 function google_recaptcha_type(){
702
703 var cur_captcha_type = jQuery("input:radio[name='captcha_type']:checked").val();
704
705 if(cur_captcha_type == 'v3' || cur_captcha_type == 'v2_invisible'){
706 if(cur_captcha_type == 'v3'){
707 jQuery(".lz_google_cap_v3").show();
708 } else {
709 jQuery(".lz_google_cap_v3").hide();
710 }
711
712 jQuery(".lz_google_cap_size").hide();
713 }else{
714 jQuery(".lz_google_cap_size").show();
715 jQuery(".lz_google_cap_v3").hide();
716
717 }
718
719 }
720
721 jQuery(document).ready(function(){
722 lz_captcha_status();
723 });
724
725 </script>
726
727 <?php
728 loginizer_page_footer();
729
730 }