← All changes
|
includes/widgets/Form_Builder/helpers/Send_Webhook.php
+24
-1
51.1.38
→
51.1.86
View file →
| @@ -24,8 +24,31 @@ | ||
| 24 | 24 | if (!wp_verify_nonce($nonce, 'king-addons-js')) { |
| 25 | 25 | return; |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | + Form_Builder_Security::guard_spam(); | |
| 29 | + | |
| 30 | + $webhook_option_key = 'king_addons_webhook_url_' . $_POST['king_addons_form_id']; | |
| 31 | + $webhook_url_raw = get_option($webhook_option_key); | |
| 32 | + $webhook_url = $webhook_url_raw ? esc_url_raw(trim($webhook_url_raw)) : ''; | |
| 33 | + | |
| 34 | + if (!$webhook_url || !wp_http_validate_url($webhook_url)) { | |
| 35 | + wp_send_json_error([ | |
| 36 | + 'action' => 'king_addons_form_builder_webhook', | |
| 37 | + 'message' => esc_html__('Invalid webhook URL.', 'king-addons'), | |
| 38 | + 'status' => 'error', | |
| 39 | + ]); | |
| 40 | + } | |
| 41 | + | |
| 42 | + $parsed = parse_url($webhook_url); | |
| 43 | + if (empty($parsed['scheme']) || !in_array($parsed['scheme'], ['http', 'https'], true)) { | |
| 44 | + wp_send_json_error([ | |
| 45 | + 'action' => 'king_addons_form_builder_webhook', | |
| 46 | + 'message' => esc_html__('Webhook URL must use http or https.', 'king-addons'), | |
| 47 | + 'status' => 'error', | |
| 48 | + ]); | |
| 49 | + } | |
| 50 | + | |
| 28 | 51 | $message_body = []; |
| 29 | 52 | |
| 30 | 53 | foreach ($_POST['form_content'] as $key => $value) { |
| 31 | 54 | if (is_array($value[1])) { |
| @@ -34,9 +57,9 @@ | ||
| 34 | 57 | } else { |
| 35 | 58 | $message_body[trim($value[2])] = implode("\n", $value[1]); |
| 36 | 59 | } |
| 37 | 60 | } else { |
| 38 | - if (empty($value2)) { | |
| 61 | + if (empty($value[2])) { | |
| 39 | 62 | $message_body[trim($key)] = $value[1]; |
| 40 | 63 | } else { |
| 41 | 64 | $message_body[trim($value[2])] = $value[1]; |
| 42 | 65 | } |