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
}
}