$value) { if (is_string($value)) { foreach ($spam_patterns as $pattern) { if (stripos($value, $pattern) !== false) { $is_spam = true; $spam_reason = "Matched pattern: $pattern"; break 2; } } } } // Check honeypot field if (!empty($post_data['website_url'])) { $is_spam = true; $spam_reason = "Honeypot triggered"; } // Check form submission speed (under 2 seconds) if (!empty($post_data['form_loaded_at'])) { $elapsed = (microtime(true) * 1000) - intval($post_data['form_loaded_at']); if ($elapsed < 2000) { $is_spam = true; $spam_reason = "Submitted too fast: {$elapsed}ms"; } } // Rate limit: max 3 submissions per 10 minutes per IP $transient_key = 'mdu_form_rate_' . md5($ip); $count = get_transient($transient_key); if ($count === false) { $count = 0; } $count = intval($count) + 1; set_transient($transient_key, $count, 600); if ($count > 3) { $is_spam = true; $spam_reason = "Rate limited: {$count} submissions in 10 min"; } // Log the submission attempt $log_entry = date('Y-m-d H:i:s') . " | IP: {$ip} | Spam: " . ($is_spam ? 'YES' : 'NO') . " | Reason: {$spam_reason} | Data: " . substr($form_data, 0, 200) . " "; @file_put_contents(sys_get_temp_dir() . '/mdu_form_spam.log', $log_entry, FILE_APPEND); // If spam, return error and stop processing if ($is_spam) { wp_send_json_error(array( 'code' => 403, 'message' => 'Form submission blocked.' ), 403); exit; } } ?>

Have feedback or questions?

We’re here to help!

Please fill out this form to get more information on MDU Solutions!

Contact Information