Ce didacticiel montre comment intégrer RecaptCha de Google dans un formulaire d'enregistrement WordPress pour lutter contre les enregistrements de spam. Nous tirons parti de l'API WordPress HTTP pour vérifier les réponses des utilisateurs.
Concepts clés:
Pourquoi utiliser recaptcha?
La popularité de WordPress en fait une cible privilégiée pour les robots créant de nombreux comptes de spam. Recaptcha fournit une solution robuste à ce problème.
Étapes de développement du plugin:
Obtenez les clés RecaptCha: Enregistrez votre domaine sur le site Web de RecaptCha (RecaptCha v2 est recommandé) et obtenez votre clé de site et votre clé secrète.
En-tête du plugin: Commencez votre fichier de plugin (recaptcha-registration.php
) avec l'en-tête du plugin standard:
<?php /** * Plugin Name: reCAPTCHA Registration * Plugin URI: [Your Plugin URI] * Description: Adds reCAPTCHA to the WordPress registration form. * Version: 1.0.0 * Author: [Your Name] * Author URI: [Your Website] * License: GPL2 * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Text Domain: recaptcha-registration */
class reCAPTCHA_Registration { private $site_key; private $secret_key; public function __construct() { $this->site_key = '[YOUR_SITE_KEY]'; // Replace with your site key $this->secret_key = '[YOUR_SECRET_KEY]'; // Replace with your secret key add_action('register_form', array($this, 'display_recaptcha')); add_action('registration_errors', array($this, 'validate_recaptcha'), 10, 3); } public function display_recaptcha() { ?> <🎜> <div class="g-recaptcha" data-sitekey="<?php echo $this->site_key; ?>" data-callback="recaptchaCallback"></div> <🎜> <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"> <?php } public function validate_recaptcha($errors, $sanitized_user_login, $user_email) { $response = isset($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : null; if (empty($response)) { $errors->add('empty_recaptcha', __('Please complete the reCAPTCHA.', 'recaptcha-registration')); } else { $verify_response = $this->verify_recaptcha($response); if (!$verify_response['success']) { $errors->add('invalid_recaptcha', __('Invalid reCAPTCHA response.', 'recaptcha-registration')); } } } private function verify_recaptcha($response) { $url = 'https://www.google.com/recaptcha/api/siteverify'; $data = array( 'secret' => $this->secret_key, 'response' => $response, 'remoteip' => $_SERVER['REMOTE_ADDR'] ); $response = wp_remote_post($url, array('body' => $data)); return json_decode(wp_remote_retrieve_body($response), true); } } new reCAPTCHA_Registration();
recaptcha-registration.php
dans votre répertoire /wp-content/plugins/
et activez-le dans votre panneau d'administration WordPress. N'oubliez pas de remplacer les clés d'espace réservé par vos clés réelles. Capture d'écran du formulaire d'enregistrement protégé:
Cette version améliorée utilise le nouveau RecaptCha V2 et le chargement asynchrone pour de meilleures performances et une expérience utilisateur. Il comprend également la gestion des erreurs et l'internationalisation. N'oubliez pas de remplacer les espaces réservés entre crochets par vos clés Recaptcha réelles. Ce code est plus concis et efficace que l'exemple d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!