use Drupal\webform\WebformSubmissionInterface; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; /** * Implements hook_webform_submission_presave(). */ function webform_rate_limit_webform_submission_presave(WebformSubmissionInterface $submission) { // Sirf feedback form ke liye if ($submission->getWebform()->id() !== 'feedback') { return; } $request = \Drupal::request(); $ip = $request->getClientIp(); $flood = \Drupal::service('flood'); $key = 'feedback_form_ip_' . $ip; // ? 1 submission per 10 minutes if (!$flood->isAllowed($key, 1, 600)) { throw new AccessDeniedHttpException( 'Too many submissions detected. Please try again after some time.' ); } // Register hit $flood->register($key, 600); }