Rumah >Tutorial CMS >WordTekan >Mengintegrasikan CAPTCHA dengan Borang Pendaftaran WordPress
Tutorial ini menunjukkan cara mengintegrasikan semula Recaptcha Google ke dalam borang pendaftaran WordPress untuk memerangi pendaftaran spam. Kami akan memanfaatkan API HTTP WordPress untuk mengesahkan jawapan pengguna.
Konsep Utama:
Kenapa gunakan Recaptcha?
Langkah -langkah Pembangunan Plugin:
Dapatkan Kekunci Recaptcha: Daftar domain anda di laman web Recaptcha (Recaptcha V2 disyorkan) dan dapatkan kunci tapak dan kunci rahsia anda.
header plugin: Mulakan fail plugin anda (recaptcha-registration.php
<code class="language-php"><?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 */</code>
<code class="language-php">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();</code>
recaptcha-registration.php
/wp-content/plugins/
Versi yang lebih baik ini menggunakan Recaptcha V2 yang lebih baru dan pemuatan tak segerak untuk prestasi dan pengalaman pengguna yang lebih baik. Ia juga termasuk pengendalian ralat dan pengantarabangsaan. Ingatlah untuk menggantikan tempat letak yang bertengkar dengan kekunci Recaptcha sebenar anda. Kod ini lebih ringkas dan cekap daripada contoh asal.
Atas ialah kandungan terperinci Mengintegrasikan CAPTCHA dengan Borang Pendaftaran WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!