Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/fluentform/app/Modules/Turnstile/Turnstile.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 +
3 + namespace FluentForm\App\Modules\Turnstile;
4 +
5 + use FluentForm\Framework\Helpers\ArrayHelper;
6 +
7 + class Turnstile
8 + {
9 + /**
10 + * Verify turnstile response.
11 + *
12 + * @param string $token response from the user.
13 + * @param null $secret provided or already stored secret key.
14 + *
15 + * @return bool
16 + */
17 + public static function validate($token, $secret)
18 + {
19 + $verifyUrl = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
20 +
21 + $response = wp_remote_post($verifyUrl, [
22 + 'method' => 'POST',
23 + 'body' => [
24 + 'secret' => $secret,
25 + 'response' => $token,
26 + ],
27 + ]);
28 +
29 + $isValid = false;
30 +
31 + if (!is_wp_error($response)) {
32 + $result = json_decode(wp_remote_retrieve_body($response));
33 + $isValid = $result->success;
34 + }
35 +
36 + return $isValid;
37 + }
38 +
39 + public static function ensureSettings($values)
40 + {
41 + $settings = ArrayHelper::get($values, '_fluentform_turnstile_details');
42 +
43 + $settings['invisible'] = ArrayHelper::get($settings, 'invisible', 'no');
44 + $settings['theme'] = ArrayHelper::get($settings, 'theme', 'auto');
45 + $settings['appearance'] = ArrayHelper::get($settings, 'appearance', 'always');
46 + unset($settings['token']);
47 +
48 + $values['_fluentform_turnstile_details'] = $settings;
49 +
50 + return $values;
51 + }
52 + }
53 +