PluginProbe
Loginizer / 2.0.7
Loginizer v2.0.7
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.7, at main/settings/recaptcha.php

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