PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.9.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.9.1
V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 2.10.2 All 137 releases
bit-form / includes / Frontend / Form / View / Theme / Fields / TurnstileField.php

TurnstileField.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 2.9.1, at includes/Frontend/Form/View/Theme/Fields/TurnstileField.php

72 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BitCode\BitForm\Frontend\Form\View\Theme\Fields;
4
5 use BitCode\BitForm\Core\Integration\IntegrationHandler;
6
7 class TurnstileField
8 {
9 public static function init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error = null, $value = null)
10 {
11 $integrationHandler = new IntegrationHandler(0);
12 $allFormIntegrations = $integrationHandler->getAllIntegration('app', 'turnstileCaptcha');
13 if (is_wp_error($allFormIntegrations)) {
14 return '';
15 }
16 $siteKey = json_decode($allFormIntegrations[0]->integration_details)->siteKey;
17 return self::field($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $siteKey, $error = null, $value = null);
18 }
19
20 private static function field($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $siteKey, $error = null, $value = null)
21 {
22 $fieldHelpers = new FieldHelpers($field, $rowID, $form_atomic_Cls_map);
23 $theme = $field->config->theme;
24 $size = $field->config->size;
25 $language = $field->config->language;
26 $appearance = $field->config->appearance;
27
28 $interactiveCallback = '';
29 $dNone = '';
30 $script = '';
31
32 $fldKeyWithContentId = $fieldHelpers->getFieldKeyWithContentCount();
33 $fldKeyExceptHyphen = str_replace('-', '', $fldKeyWithContentId);
34
35 $beforeInteractiveCallback = '';
36 $afterInteractiveCallback = '';
37
38 if ('interaction-only' === $appearance) {
39 $beforeExcFuncName = 'bfBeforeInteractiveCallback' . $fldKeyExceptHyphen;
40 $afterExcFuncName = 'bfAfterInteractiveCallback' . $fldKeyExceptHyphen;
41 $dNone = 'd-none';
42 $beforeInteractiveCallback = 'data-before-interactive-callback="' . $beforeExcFuncName . '"';
43 $afterInteractiveCallback = 'data-after-interactive-callback="' . $afterExcFuncName . '"';
44 $script = <<<TURNSTILESCRIPT
45 <script>
46 function {$beforeExcFuncName}() {
47 const bfTurnstileFldSelector = document.querySelector('.{$fldKeyWithContentId}-turnstile-wrp');
48 if(bfTurnstileFldSelector) bfTurnstileFldSelector.parentElement.classList.remove('d-none');
49 }
50 function {$afterExcFuncName}() {
51 const bfTurnstileFldSelector = document.querySelector('.{$fldKeyWithContentId}-turnstile-wrp');
52 if(bfTurnstileFldSelector) bfTurnstileFldSelector.parentElement.classList.add('d-none');
53 }
54 </script>
55 TURNSTILESCRIPT;
56 }
57
58 return <<<TURNSTILEFIELD
59 {$script}
60 <div
61 {$fieldHelpers->getCustomAttributes('fld-wrp')}
62 class="{$fieldHelpers->getAtomicCls('fld-wrp')} {$fieldHelpers->getCustomClasses('fld-wrp')} {$dNone}"
63 >
64 <div class="$fldKeyWithContentId-turnstile-wrp">
65 <div class="cf-turnstile" {$beforeInteractiveCallback} {$afterInteractiveCallback} data-appearance="{$appearance}" data-language="{$language}" data-theme="{$theme}" data-size="{$size}" data-sitekey="{$fieldHelpers->esc_attr($siteKey)}">
66 </div>
67 </div>
68 </div>
69 TURNSTILEFIELD;
70 }
71 }
72