PluginProbe
Loginizer / 2.0.1
Loginizer v2.0.1
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.1, at main/settings/recaptcha.php

686 lines 29.9 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 // reCAPTCHA Domains
88 $lz_env['captcha_domains']['www.google.com'] = 'google.com';
89 $lz_env['captcha_domains']['www.recaptcha.net'] = 'recaptcha.net';
90
91 if(isset($_POST['save_lz'])){
92
93 // Clear captcha
94 if(empty($_POST['captcha_status'])){
95
96 // Save the options
97 update_option('loginizer_captcha', '');
98
99 // Mark as saved
100 $GLOBALS['lz_cleared'] = true;
101
102 }else{
103
104 $option['captcha_status'] = (int) lz_optpost('captcha_status');
105
106 //hcaptcha
107 $option['hcaptcha_secretkey'] = lz_optpost('hcaptcha_secretkey');
108 $option['hcaptcha_sitekey'] = lz_optpost('hcaptcha_sitekey');
109 $option['hcaptcha_lang'] = lz_optpost('hcaptcha_lang');
110 $option['hcaptcha_theme'] = lz_optpost('hcaptcha_theme');
111 $option['hcaptcha_size'] = lz_optpost('hcaptcha_size');
112
113 // Google Captcha
114 $option['captcha_type'] = lz_optpost('captcha_type');
115 $option['captcha_key'] = lz_optpost('captcha_key');
116 $option['captcha_secret'] = lz_optpost('captcha_secret');
117 $option['captcha_theme'] = lz_optpost('captcha_theme');
118 $option['captcha_size'] = lz_optpost('captcha_size');
119 $option['captcha_lang'] = lz_optpost('captcha_lang');
120 $option['captcha_domain'] = lz_optpost('captcha_domain');
121 $option['captcha_disable_btn'] = lz_optpost('captcha_disable_btn'); // Only for v2 reCaptcha Checkbox
122
123 // Cloudflare Turnstil Captcha
124 $option['turn_captcha_key'] = lz_optpost('turn_captcha_key');
125 $option['turn_captcha_secret'] = lz_optpost('turn_captcha_secret');
126 $option['turn_captcha_theme'] = lz_optpost('turn_captcha_theme');
127 $option['turn_captcha_size'] = lz_optpost('turn_captcha_size');
128 $option['turn_captcha_lang'] = lz_optpost('turn_captcha_lang');
129
130 // Math Captcha
131 $option['captcha_text'] = lz_optpost('captcha_text');
132 $option['captcha_time'] = (int) lz_optpost('captcha_time');
133 $option['captcha_words'] = (int) lz_optpost('captcha_words');
134 $option['captcha_add'] = (int) lz_optpost('captcha_add');
135 $option['captcha_subtract'] = (int) lz_optpost('captcha_subtract');
136 $option['captcha_multiply'] = (int) lz_optpost('captcha_multiply');
137 $option['captcha_divide'] = (int) lz_optpost('captcha_divide');
138
139 // Checkboxes
140 $option['captcha_user_hide'] = (int) lz_optpost('captcha_user_hide');
141 $option['captcha_login'] = (int) lz_optpost('captcha_login');
142 $option['captcha_lostpass'] = (int) lz_optpost('captcha_lostpass');
143 $option['captcha_resetpass'] = (int) lz_optpost('captcha_resetpass');
144 $option['captcha_register'] = (int) lz_optpost('captcha_register');
145 $option['captcha_comment'] = (int) lz_optpost('captcha_comment');
146 $option['captcha_wc_checkout'] = (int) lz_optpost('captcha_wc_checkout');
147
148 // Are we to use Math Captcha ?
149 if(!empty($_POST['captcha_status']) && $_POST['captcha_status'] == 2){
150
151 $option['captcha_no_google'] = 1;
152
153 // Make the checks
154 if(strlen($option['captcha_text']) < 1){
155 $lz_error['captcha_text'] = __('The Captcha key was not submitted', 'loginizer');
156 }
157
158 }else if(!empty($_POST['captcha_status']) && $_POST['captcha_status'] == 3){
159
160 if(strlen($option['hcaptcha_sitekey']) < 32 || strlen($option['hcaptcha_sitekey']) > 50){
161 $lz_error['hcaptcha_sitekey'] = __('The hCAPTCHA key is invalid', 'loginizer');
162 }
163
164 // Is secret valid ?
165 if(strlen($option['hcaptcha_secretkey']) < 32 || strlen($option['hcaptcha_secretkey']) > 50){
166 $lz_error['hcaptcha_secretkey'] = __('The hCAPTCHA secret is invalid', 'loginizer');
167 }
168
169 // Is theme valid ?
170 if(empty($lz_env['theme'][$option['hcaptcha_theme']])){
171 $lz_error['hcaptcha_theme'] = __('The hCaptcha theme is invalid', 'loginizer');
172 }
173
174 // Is size valid ?
175 if(empty($lz_env['size'][$option['hcaptcha_size']])){
176 $lz_error['hcaptcha_size'] = __('The Turnstile size is invalid', 'loginizer');
177 }
178
179 // Is lang valid ?
180 if(empty($lz_env['lang'][$option['turn_captcha_lang']])){
181 $lz_error['turn_captcha_lang'] = __('The Turnstile language is invalid', 'loginizer');
182 }
183
184 }else if(!empty($_POST['captcha_status']) && $_POST['captcha_status'] == 4){
185
186 if(strlen($option['turn_captcha_key']) < 24 || strlen($option['turn_captcha_key']) > 50){
187 $lz_error['turn_captcha_key'] = __('The Turnstile Site key is invalid', 'loginizer');
188 }
189
190 // Is secret valid ?
191 if(strlen($option['turn_captcha_secret']) < 32 || strlen($option['turn_captcha_secret']) > 50){
192 $lz_error['turn_captcha_secret'] = __('The Turnstile secret key is invalid', 'loginizer');
193 }
194
195 // Is theme valid ?
196 if(empty($lz_env['theme'][$option['turn_captcha_theme']])){
197 $lz_error['turn_captcha_theme'] = __('The Turnstile theme is invalid', 'loginizer');
198 }
199
200 // Is size valid ?
201 if(empty($lz_env['size'][$option['turn_captcha_size']])){
202 $lz_error['turn_captcha_size'] = __('The Turnstile size is invalid', 'loginizer');
203 }
204
205 // Is lang valid ?
206 if(empty($lz_env['lang'][$option['turn_captcha_lang']])){
207 $lz_error['turn_captcha_lang'] = __('The Turnstile language is invalid', 'loginizer');
208 }
209
210 }else{
211
212 // Make the checks
213 if(strlen($option['captcha_key']) < 32 || strlen($option['captcha_key']) > 50){
214 $lz_error['captcha_key'] = __('The reCAPTCHA key is invalid', 'loginizer');
215 }
216
217 // Is secret valid ?
218 if(strlen($option['captcha_secret']) < 32 || strlen($option['captcha_secret']) > 50){
219 $lz_error['captcha_secret'] = __('The reCAPTCHA secret is invalid', 'loginizer');
220 }
221
222 // Is theme valid ?
223 if(empty($lz_env['theme'][$option['captcha_theme']])){
224 $lz_error['captcha_theme'] = __('The reCAPTCHA theme is invalid', 'loginizer');
225 }
226
227 // Is size valid ?
228 if(empty($lz_env['size'][$option['captcha_size']])){
229 $lz_error['captcha_size'] = __('The reCAPTCHA size is invalid', 'loginizer');
230 }
231
232 // Is lang valid ?
233 if(empty($lz_env['lang'][$option['captcha_lang']])){
234 $lz_error['captcha_lang'] = __('The reCAPTCHA language is invalid', 'loginizer');
235 }
236
237 if(empty($lz_env['captcha_domains'][$option['captcha_domain']])){
238 $lz_error['captcha_domain'] = __('The reCAPTCHA domain is invalid', 'loginizer');
239 }
240
241 }
242
243 // Is there an error ?
244 if(!empty($lz_error)){
245 return loginizer_page_recaptcha_T();
246 }
247
248 // Save the options
249 update_option('loginizer_captcha', $option);
250
251 // Mark as saved
252 $GLOBALS['lz_saved'] = true;
253 }
254
255 }
256
257 // Call the theme
258 loginizer_page_recaptcha_T();
259
260 }
261
262 // Loginizer - reCaptcha Page Theme
263 function loginizer_page_recaptcha_T(){
264
265 global $loginizer, $lz_error, $lz_env;
266
267 // Universal header
268 loginizer_page_header('reCAPTCHA Settings');
269
270 loginizer_feature_available('reCAPTCHA');
271
272 // Saved ?
273 if(!empty($GLOBALS['lz_saved'])){
274 echo '<div id="message" class="updated"><p>'. __('The settings were saved successfully', 'loginizer'). '</p></div><br />';
275 }
276
277 // Cleared ?
278 if(!empty($GLOBALS['lz_cleared'])){
279 echo '<div id="message" class="updated"><p>'. __('reCAPTCHA has been disabled !', 'loginizer'). '</p></div><br />';
280 }
281
282 // Any errors ?
283 if(!empty($lz_error)){
284 lz_report_error($lz_error);echo '<br />';
285 }
286
287 ?>
288
289 <style>
290 input[type="text"], textarea, select {
291 width: 70%;
292 }
293 </style>
294
295 <div id="" class="postbox">
296
297 <div class="postbox-header">
298 <h2 class="hndle ui-sortable-handle">
299 <span><?php echo __('reCAPTCHA Settings', 'loginizer'); ?></span>
300 </h2>
301 </div>
302
303 <div class="inside">
304
305 <form action="" method="post" enctype="multipart/form-data" loginizer-premium-only="1">
306 <?php wp_nonce_field('loginizer-options'); ?>
307 <table class="form-table">
308 <tr>
309 <td scope="row" valign="top" style="width:400px !important;"><label for="captcha_status"><b><?php echo __('Captcha Status', 'loginizer'); ?></b></label></td>
310 <td>
311 <select name="captcha_status" id="captcha_status" onchange="lz_captcha_status();">
312 <?php
313 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>
314 <option '.lz_POSTselect('captcha_status', 1, (!empty($loginizer['captcha_key']) ? true : false)).' value="1">'.__('Google reCAPTCHA', 'loginizer').'</option>
315 <option '.lz_POSTselect('captcha_status', 2, (!empty($loginizer['captcha_no_google']) ? true : false)).' value="2">'.__('Math Captcha', 'loginizer').'</option>
316 <option '.lz_POSTselect('captcha_status', 3, ((!empty($loginizer['captcha_status']) && $loginizer['captcha_status'] == 3) ? true : false)).' value="3">'.__('hCAPTCHA', 'loginizer').'</option>
317 <option '.lz_POSTselect('captcha_status', 4, ((!empty($loginizer['captcha_status']) && $loginizer['captcha_status'] == 4) ? true : false)).' value="4">'.__('Cloudflare Turnstile', 'loginizer').'</option>';
318 ?>
319 </select>
320 </td>
321 </tr>
322
323 <tr class="hcaptcha">
324 <td scope="row" valign="top"><label for="hcaptcha_sitekey"><b><?php echo __('Site Key', 'loginizer'); ?></b></label><br>
325 <?php echo __('Make sure you enter the correct keys as per the reCAPTCHA type selected above', 'loginizer'); ?>
326 </td>
327 <td>
328 <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 />
329 <?php echo __('Get the Site Key and Secret Key from <a href="https://www.hcaptcha.com/" target="_blank">hcaptcha</a>', 'loginizer'); ?>
330 </td>
331 </tr>
332
333 <tr class="hcaptcha">
334 <td scope="row" valign="top"><label for="hcaptcha_secretkey"><b><?php echo __('Secret Key', 'loginizer'); ?></b></label></td>
335 <td>
336 <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" />
337 </td>
338 </tr>
339 <tr class="hcaptcha">
340 <td scope="row" valign="top"><label for="hcaptcha_theme"><b><?php echo __('Theme', 'loginizer'); ?></b></label></td>
341 <td>
342 <select name="hcaptcha_theme" id="hcaptcha_theme">
343 <?php
344 foreach($lz_env['theme'] as $k => $v){
345 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>';
346 }
347 ?>
348 </select>
349 </td>
350 </tr>
351 <tr class="hcaptcha">
352 <td scope="row" valign="top"><label for="hcaptcha_lang"><b><?php echo __('Language', 'loginizer'); ?></b></label></td>
353 <td>
354 <select name="hcaptcha_lang" id="hcaptcha_lang">
355 <?php
356 foreach($lz_env['lang'] as $k => $v){
357 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>';
358 }
359 ?>
360 </select>
361 </td>
362 </tr>
363
364 <tr class="hcaptcha">
365 <td scope="row" valign="top"><label for="hcaptcha_size"><b><?php echo __('Size', 'loginizer'); ?></b></label></td>
366 <td>
367 <select name="hcaptcha_size" id="hcaptcha_size">
368 <?php
369 foreach($lz_env['size'] as $k => $v){
370 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>';
371 }
372 ?>
373 </select>
374 </td>
375 </tr>
376
377
378 <tr class="lz_google_cap">
379 <td scope="row" valign="top"><label><b><?php echo __('reCAPTCHA type', 'loginizer'); ?></b></label><br>
380 <?php echo __('Choose the type of reCAPTCHA', 'loginizer'); ?><br />
381 <?php echo __('<a href="https://g.co/recaptcha/sitetypes/" target="_blank">See Site Types for more details</a>', 'loginizer'); ?>
382 </td>
383 <td>
384 <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 />
385 <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 />
386 <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 />
387 </td>
388 </tr>
389 <tr class="lz_google_cap">
390 <td scope="row" valign="top"><label for="captcha_key"><b><?php echo __('Site Key', 'loginizer'); ?></b></label><br>
391 <?php echo __('Make sure you enter the correct keys as per the reCAPTCHA type selected above', 'loginizer'); ?>
392 </td>
393 <td>
394 <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 />
395 <?php echo __('Get the Site Key and Secret Key from <a href="https://www.google.com/recaptcha/admin/" target="_blank">Google</a>', 'loginizer'); ?>
396 </td>
397 </tr>
398 <tr class="lz_google_cap">
399 <td scope="row" valign="top"><label for="captcha_secret"><b><?php echo __('Secret Key', 'loginizer'); ?></b></label></td>
400 <td>
401 <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" />
402 </td>
403 </tr>
404 <tr class="lz_google_cap">
405 <td scope="row" valign="top"><label for="captcha_theme"><b><?php echo __('Theme', 'loginizer'); ?></b></label></td>
406 <td>
407 <select name="captcha_theme" id="captcha_theme">
408 <?php
409 foreach($lz_env['theme'] as $k => $v){
410 echo '<option '.lz_POSTselect('captcha_theme', $k, ((!empty($loginizer['captcha_theme']) && $loginizer['captcha_theme'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</value>';
411 }
412 ?>
413 </select>
414 </td>
415 </tr>
416 <tr class="lz_google_cap">
417 <td scope="row" valign="top"><label for="captcha_lang"><b><?php echo __('Language', 'loginizer'); ?></b></label></td>
418 <td>
419 <select name="captcha_lang" id="captcha_lang">
420 <?php
421 foreach($lz_env['lang'] as $k => $v){
422 echo '<option '.lz_POSTselect('captcha_lang', $k, ((!empty($loginizer['captcha_lang']) && $loginizer['captcha_lang'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</value>';
423 }
424 ?>
425 </select>
426 </td>
427 </tr>
428 <tr class="lz_google_cap lz_google_cap_size">
429 <td scope="row" valign="top"><label for="captcha_size"><b><?php echo __('Size', 'loginizer'); ?></b></label></td>
430 <td>
431 <select name="captcha_size" id="captcha_size">
432 <?php
433 foreach($lz_env['size'] as $k => $v){
434 echo '<option '.lz_POSTselect('captcha_size', $k, ((!empty($loginizer['captcha_size']) && $loginizer['captcha_size'] == $k) ? true : false)).' value="'.esc_attr($k).'">'.esc_html($v).'</value>';
435 }
436 ?>
437 </select>
438 </td>
439 </tr>
440 <tr class="lz_google_cap">
441 <td scope="row" valign="top">
442 <label for="captcha_domain"><b><?php echo __('reCAPTCHA Domain', 'loginizer'); ?></b></label><br>
443 <?php echo __('If Google is not accessible or blocked in your country select other one', 'loginizer'); ?>
444 </td>
445 <td>
446 <select name="captcha_domain" id="captcha_domain">
447 <?php
448 foreach($lz_env['captcha_domains'] as $k => $v){
449 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') : '').'</value>';
450 }
451 ?>
452 </select>
453 </td>
454 </tr>
455
456 <tr class="lz_turnstile_cap">
457 <td scope="row" valign="top"><label for="turn_captcha_key"><b><?php echo __('Site Key', 'loginizer'); ?></b></label><br>
458 </td>
459 <td>
460 <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 />
461 <?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'); ?>
462 </td>
463 </tr>
464 <tr class="lz_turnstile_cap">
465 <td scope="row" valign="top"><label for="turn_captcha_secret"><b><?php echo __('Secret Key', 'loginizer'); ?></b></label></td>
466 <td>
467 <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" />
468 </td>
469 </tr>
470 <tr class="lz_turnstile_cap">
471 <td scope="row" valign="top"><label for="turn_captcha_theme"><b><?php echo __('Theme', 'loginizer'); ?></b></label></td>
472 <td>
473 <select name="turn_captcha_theme" id="turn_captcha_theme">
474 <?php
475 foreach($lz_env['theme'] as $k => $v){
476 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).'</value>';
477 }
478 ?>
479 </select>
480 </td>
481 </tr>
482
483 <tr class="lz_turnstile_cap">
484 <td scope="row" valign="top"><label for="turn_captcha_lang"><b><?php echo __('Language', 'loginizer'); ?></b></label></td>
485 <td>
486 <select name="turn_captcha_lang" id="turn_captcha_lang">
487 <?php
488 foreach($lz_env['lang'] as $k => $v){
489 echo '<option '.lz_POSTselect('turn_captcha_lang', $k, ((!empty($loginizer['turn_captcha_lang']) && $loginizer['turn_captcha_lang'] == $k) ? true : false)).' value="'.$k.'">'.$v.'</value>';
490 }
491 ?>
492 </select>
493 </td>
494 </tr>
495 <tr class="lz_turnstile_cap lz_google_cap_size">
496 <td scope="row" valign="top"><label for="turn_captcha_size"><b><?php echo __('Size', 'loginizer'); ?></b></label></td>
497 <td>
498 <select name="turn_captcha_size" id="turn_captcha_size">
499 <?php
500 foreach($lz_env['size'] as $k => $v){
501 echo '<option '.lz_POSTselect('turn_captcha_size', $k, ((!empty($loginizer['turn_captcha_size']) && $loginizer['turn_captcha_size'] == $k) ? true : false)).' value="'.$k.'">'.$v.'</value>';
502 }
503 ?>
504 </select>
505 </td>
506 </tr>
507
508 <tr class="lz_math_cap">
509 <td scope="row" valign="top">
510 <label for="captcha_text"><b><?php echo __('Captcha Text', 'loginizer'); ?></b></label><br>
511 <?php echo __('The text to be shown for the Captcha Field', 'loginizer'); ?>
512 </td>
513 <td>
514 <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" />
515 </td>
516 </tr>
517 <tr class="lz_math_cap">
518 <td scope="row" valign="top">
519 <label for="captcha_time"><b><?php echo __('Captcha Time', 'loginizer'); ?></b></label><br>
520 <?php echo __('Enter the number of seconds, a user has to enter captcha value.', 'loginizer'); ?>
521 </td>
522 <td>
523 <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" />
524 </td>
525 </tr>
526 <tr class="lz_math_cap">
527 <td scope="row" valign="top">
528 <label for="captcha_words"><b><?php echo __('Display Captcha in Words', 'loginizer'); ?></b></label><br>
529 <?php echo __('If selected the Captcha will be displayed in words rather than numbers', 'loginizer'); ?>
530 </td>
531 <td>
532 <input type="checkbox" value="1" name="captcha_words" id="captcha_words" <?php echo lz_POSTchecked('captcha_words', (empty($loginizer['captcha_words']) ? false : true));?> />
533 </td>
534 </tr>
535 <tr class="lz_math_cap">
536 <td scope="row" valign="top" style="vertical-align: top !important;">
537 <label><b><?php echo __('Mathematical operations', 'loginizer'); ?></b></label><br>
538 <?php echo __('The Mathematical operations to use for Captcha', 'loginizer'); ?>
539 </td>
540 <td valign="top">
541 <table class="wp-list-table fixed users" cellpadding="8" cellspacing="1">
542 <?php echo '
543 <tr>
544 <td><label for="captcha_add">'.__('Addition (+)', 'loginizer').'</label></td>
545 <td><input type="checkbox" value="1" name="captcha_add" id="captcha_add" '.lz_POSTchecked('captcha_add', (empty($loginizer['captcha_add']) ? false : true)).' /></td>
546 </tr>
547 <tr>
548 <td><label for="captcha_subtract">'.__('Subtraction (-)', 'loginizer').'</label></td>
549 <td><input type="checkbox" value="1" name="captcha_subtract" id="captcha_subtract" '.lz_POSTchecked('captcha_subtract', (empty($loginizer['captcha_subtract']) ? false : true)).' /></td>
550 </tr>
551 <tr>
552 <td><label for="captcha_multiply">'.__('Multiplication (x)', 'loginizer').'</label></td>
553 <td><input type="checkbox" value="1" name="captcha_multiply" id="captcha_multiply" '.lz_POSTchecked('captcha_multiply', (empty($loginizer['captcha_multiply']) ? false : true)).' /></td>
554 </tr>
555 <tr>
556 <td><label for="captcha_divide">'.__('Division (÷)', 'loginizer').'</label></td>
557 <td><input type="checkbox" value="1" name="captcha_divide" id="captcha_divide" '.lz_POSTchecked('captcha_divide', (empty($loginizer['captcha_divide']) ? false : true)).' /></td>
558 </tr>';
559 ?>
560 </table>
561 </td>
562 </tr>
563 <tr class="lz_cap">
564 <td scope="row" valign="top"><label><b><?php echo __('Show Captcha On', 'loginizer'); ?></b></label></td>
565 <td valign="top">
566 <table class="wp-list-table fixed users" cellpadding="8" cellspacing="1">
567 <?php echo '
568 <tr>
569 <td><label for="captcha_login">'.__('Login Form', 'loginizer').'</label></td>
570 <td><input type="checkbox" value="1" name="captcha_login" id="captcha_login" '.lz_POSTchecked('captcha_login', (empty($loginizer['captcha_login']) ? false : true)).' /></td>
571 </tr>
572 <tr>
573 <td><label for="captcha_lostpass">'.__('Lost Password Form', 'loginizer').'</label></td>
574 <td><input type="checkbox" value="1" name="captcha_lostpass" id="captcha_lostpass" '.lz_POSTchecked('captcha_lostpass', (empty($loginizer['captcha_lostpass']) ? false : true)).' /></td>
575 </tr>
576 <tr>
577 <td><label for="captcha_resetpass">'.__('Reset Password Form', 'loginizer').'</label></td>
578 <td><input type="checkbox" value="1" name="captcha_resetpass" id="captcha_resetpass" '.lz_POSTchecked('captcha_resetpass', (empty($loginizer['captcha_resetpass']) ? false : true)).' /></td>
579 </tr>
580 <tr>
581 <td><label for="captcha_register">'.__('Registration Form', 'loginizer').'</label></td>
582 <td><input type="checkbox" value="1" name="captcha_register" id="captcha_register" '.lz_POSTchecked('captcha_register', (empty($loginizer['captcha_register']) ? false : true)).' /></td>
583 </tr>
584 <tr>
585 <td><label for="captcha_comment">'.__('Comment Form', 'loginizer').'</label></td>
586 <td><input type="checkbox" value="1" name="captcha_comment" id="captcha_comment" '.lz_POSTchecked('captcha_comment', (empty($loginizer['captcha_comment']) ? false : true)).' /></td>
587 </tr>';
588
589 if(!defined('SITEPAD')){
590
591 echo '<tr>
592 <td><label for="captcha_wc_checkout">'.__('WooCommerce Checkout', 'loginizer').'</label></td>
593 <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>
594 </tr>';
595
596 }
597
598 ?>
599 </table>
600 </td>
601 </tr>
602 <tr class="lz_google_cap lz_google_cap_size">
603 <td scope="row" valign="top"><label for="captcha_disable_btn"><b><?php echo __('Disable Login Button', 'loginizer'); ?></b></label></td>
604 <td>
605 <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)); ?> />
606 </td>
607 </tr>
608 <tr class="lz_cap">
609 <td scope="row" valign="top"><label for="captcha_user_hide"><b><?php echo __('Hide CAPTCHA for logged in Users', 'loginizer'); ?></b></label></td>
610 <td>
611 <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)); ?> />
612 </td>
613 </tr>
614 </table><br />
615 <center><input name="save_lz" class="button button-primary action" value="<?php echo __('Save Settings','loginizer'); ?>" type="submit" /></center>
616 </form>
617
618 </div>
619 </div>
620 <br />
621
622 <script type="text/javascript">
623
624 function lz_captcha_status(){
625
626 var cur_captcha_status = jQuery("#captcha_status option:selected").val();
627
628 if(cur_captcha_status == 1){
629 jQuery(".lz_google_cap").show();
630 jQuery(".lz_math_cap").hide();
631 jQuery('.lz_turnstile_cap').hide();
632 jQuery(".lz_cap").show();
633 google_recaptcha_type();
634 jQuery(".hcaptcha").hide();
635
636 }else if(cur_captcha_status == 2){
637 jQuery(".lz_google_cap").hide();
638 jQuery(".lz_math_cap").show();
639 jQuery('.lz_turnstile_cap').hide();
640 jQuery(".lz_cap").show();
641 jQuery(".hcaptcha").hide();
642
643 }else if(cur_captcha_status == 3){
644 jQuery(".hcaptcha").show();
645 jQuery(".lz_math_cap").hide();
646 jQuery('.lz_turnstile_cap').hide();
647 jQuery(".lz_cap").show();
648 jQuery(".lz_google_cap").hide();
649 }else if(cur_captcha_status == 4){
650 jQuery(".hcaptcha").hide();
651 jQuery(".lz_math_cap").hide();
652 jQuery('.lz_turnstile_cap').show();
653 jQuery(".lz_cap").show();
654 jQuery(".lz_google_cap").hide();
655 }else{
656 jQuery(".hcaptcha").hide();
657 jQuery(".lz_google_cap").hide();
658 jQuery(".lz_math_cap").hide();
659 jQuery('.lz_turnstile_cap').hide();
660 jQuery(".lz_cap").hide();
661 }
662
663 }
664
665 function google_recaptcha_type(){
666
667 var cur_captcha_type = jQuery("input:radio[name='captcha_type']:checked").val();
668
669 if(cur_captcha_type == 'v3' || cur_captcha_type == 'v2_invisible'){
670 jQuery(".lz_google_cap_size").hide();
671 }else{
672 jQuery(".lz_google_cap_size").show();
673 }
674
675 }
676
677 jQuery(document).ready(function(){
678 lz_captcha_status();
679 });
680
681 </script>
682
683 <?php
684 loginizer_page_footer();
685
686 }