Tạo mã Captcha cho form liên hệ trong WordPress

Hướng dẫn chi tiết cách thêm mã Captcha vào form liên hệ trong WordPress để bảo vệ trang web khỏi spam và bot tự động.

Bài viết này sẽ hướng dẫn bạn cách tích hợp mã Captcha vào form liên hệ trong WordPress sử dụng plugin reCAPTCHA của Google. Chúng ta sẽ thực hiện các bước cài đặt và cấu hình mã Captcha để đảm bảo an toàn cho trang web.

Mã PHP:

Để thêm mã Captcha vào form liên hệ, bạn có thể sử dụng đoạn mã sau đây trong file functions.php của theme hoặc một plugin tùy chỉnh:

// Thêm reCAPTCHA vào form liên hệ
function my_contact_form_captcha() {
    ?>
    <div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
    <?php
}
add_action('wp_footer', 'my_contact_form_captcha');

// Xử lý xác thực Captcha
function verify_captcha($fields, $form) {
    if (isset($_POST['g-recaptcha-response'])) {
        $response = $_POST['g-recaptcha-response'];
        $remoteip = $_SERVER['REMOTE_ADDR'];
        $secret = 'YOUR_SECRET_KEY';

        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = [
            'secret' => $secret,
            'response' => $response,
            'remoteip' => $remoteip
        ];

        $options = [
            'http' => [
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data),
            ],
        ];
        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        $resultJson = json_decode($result);
        
        if (!$resultJson->success) {
            // Xử lý khi Captcha không hợp lệ
            return new WP_Error('captcha_error', 'Vui lòng xác thực Captcha.');
        }
    } else {
        return new WP_Error('captcha_error', 'Vui lòng xác thực Captcha.');
    }
}
add_action('contact_form_before_send', 'verify_captcha', 10, 2);

Giải thích chi tiết từng dòng code:

  1. my_contact_form_captcha(): Hàm này sẽ thêm widget reCAPTCHA vào footer của trang, yêu cầu bạn thay thế YOUR_SITE_KEY bằng khóa site của bạn.
  2. verify_captcha(): Hàm này xử lý xác thực Captcha sau khi người dùng gửi form. Nó sẽ gửi yêu cầu đến Google để xác minh mã Captcha và xử lý phản hồi.
  3. add_action('wp_footer', 'my_contact_form_captcha'): Thêm reCAPTCHA vào phần footer của WordPress.
  4. add_action('contact_form_before_send', 'verify_captcha', 10, 2): Gọi hàm xác thực Captcha trước khi gửi form liên hệ.

Yêu cầu hệ thống:

  • WordPress 4.0 trở lên
  • Trình duyệt hỗ trợ JavaScript

Cách cài đặt các thư viện để chạy được đoạn mã PHP trên:

  1. Đăng ký tài khoản tại Google reCAPTCHA.
  2. Tạo một khóa site và khóa bí mật (secret key) cho miền của bạn.
  3. Thay thế YOUR_SITE_KEYYOUR_SECRET_KEY trong mã PHP trên.

Lời khuyên:

  • Nên sử dụng reCAPTCHA v2 hoặc v3 để bảo mật tốt hơn.
  • Kiểm tra lại các cài đặt DNS nếu bạn gặp sự cố với việc xác thực Captcha.


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách SELECT dữ liệu database MySQL trong Wordpress

Hướng dẫn cách sử dụng Prepared Statements trong WordPress để truy vấn dữ liệu từ database MySQL một cách an toàn và hiệu quả.
Cách làm chức năng đăng nhập bằng Google OAuth trong Wordpress

Bài viết này hướng dẫn chi tiết cách tích hợp chức năng đăng nhập bằng Google OAuth vào Wordpress, giúp người dùng có thể sử dụng tài khoản Google để đăng nhập vào trang web một cách dễ dàng và nhanh chóng.
Cách INSERT dữ liệu vào database MySQL trong WordPress

Hướng dẫn cách sử dụng Prepared Statements trong WordPress để chèn dữ liệu vào database MySQL một cách an toàn và hiệu quả.
Hướng dẫn force HTTPS trong WordPress

Hướng dẫn chi tiết cách thiết lập force HTTPS trong WordPress để đảm bảo tất cả các truy cập vào trang web của bạn được chuyển hướng sang HTTPS, giúp tăng cường bảo mật và cải thiện SEO.
Xác thực bằng JSON Web Token (JWT) trong WordPress

Hướng dẫn chi tiết cách tích hợp xác thực bằng JSON Web Token (JWT) vào hệ thống WordPress. Bạn sẽ học cách bảo mật API REST của WordPress và sử dụng JWT để quản lý phiên đăng nhập người dùng.
Cách DELETE dữ liệu từ database MySQL trong WordPress

Hướng dẫn cách sử dụng Prepared Statements trong WordPress để xóa dữ liệu từ database MySQL một cách an toàn và hiệu quả.
Cách UPDATE dữ liệu trong database MySQL của WordPress

Hướng dẫn cách sử dụng Prepared Statements trong PHP để cập nhật dữ liệu trong database MySQL của WordPress một cách an toàn và hiệu quả.
Cách truyền Authentication Header Token khi POST dữ liệu tới API từ WordPress

Hướng dẫn cách gửi dữ liệu tới một API từ WordPress bằng phương thức POST và truyền Authentication Header Token để bảo mật. Bài viết hướng dẫn chi tiết cách cấu hình và gửi yêu cầu HTTP.
Hướng dẫn làm chức năng đăng nhập bằng Apple OAuth trong WordPress

Hướng dẫn chi tiết cách tích hợp chức năng đăng nhập bằng Apple OAuth vào trang WordPress của bạn, bao gồm cài đặt plugin và cấu hình dịch vụ Apple OAuth.
Hướng dẫn đầy đủ chi tiết cách tạo theme WordPress

Bài viết hướng dẫn bạn từng bước chi tiết để tạo một theme WordPress từ đầu, bao gồm cấu trúc thư mục, các tệp cần thiết, và cách tùy chỉnh giao diện cho trang web của bạn.

Đã thêm vào giỏ hàng