Recaptcha

  google, wordpress

Wrzucasz tu projekt i generujesz klucz strony i klucz tajny
https://www.google.com/recaptcha/intro/v3.html

Umieszczasz na stronie z formularzem takie skrypty

<script src="https://www.google.com/recaptcha/api.js?render=SITE_KEY"></script>
<script>
   grecaptcha.ready(function() {            
      grecaptcha.execute('SITE_KEY', {action: 'rmaform'}).then(function(token) {
                var recaptchaResponse = document.querySelector('#recaptchaResponse');
                recaptchaResponse.value = token;
            });
        });
    </script>

W formularzu wstawiasz input (który będzie uzupełniony JS-em

<input type="hidden" name="recaptcha_response" id="recaptchaResponse">

A w funkcji wysyłającej (czyli np w functions.php wrzucasz takie o)

//VERIFY GOOGLE TOKEN
    if ( isset($_POST['recaptcha_response']) ) {

      $ch = curl_init();

      curl_setopt_array($ch, [
          CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
          CURLOPT_POST => true,
          CURLOPT_POSTFIELDS => [
              'secret' => 'SECRET_KEY',
              'response' => $_POST['recaptcha_response']
          ],
          CURLOPT_RETURNTRANSFER => true
      ]);

      $output = curl_exec($ch);
      curl_close($ch);

      $json = json_decode($output);

      if ($json->score >= 0.5) {
          @wp_mail('support@linmot.com','RMA form message', $message, $headers, $uploadedFiles);          
          //opcjonalne przekierowanie po wysłaniu
          //header('location: '.$_SERVER['HTTP_REFERER'] ."?thank-you");
      } else {
          // Not verified - show form error
      }
  }