Thêm Google reCAPTCHA vào Wordpress không sử dụng plugin

reCAPTCHA là một dịch vụ chống spam được cung cấp hoàn toàn miễn phí từ Google. Dễ sử dụng, hiệu quả, dễ thực hiện, reCAPTCHA hiện là API captcha được sử dụng nhiều nhất. Bạn có thể đọc thêm tại https://www.google.com/recaptcha/intro/. Bây giờ bắt đầu thêm Google reCAPTCHA vào bình luận WordPress và xem nó hoạt động như thế nào.

Đã được kiểm chứng tương thích với WordPress 5.3.2

Bước 1:

Truy cập trang https://www.google.com/recaptcha/admin#list và đăng ký trang web của bạn.

Tại đây bạn sẽ phải cung cấp một số thông tin bao gồm: Tên gợi nhớ, và domain của bạn.
Mình đã tô đỏ những chổ cần điền trong ảnh minh họa trên

Bước 2:

Sau khi đăng ký xong ở bước 1 Google sẽ chuyển bạn đến trang 2. Tại đây bạn sẽ lấy được những thông tin gồm Site keySecret key. Bạn hãy lưu 2 khóa này lại để sử dụng cho bước tiếp theo.

Bước 3:

Chỉnh sửa file functions.php trong thư mục theme của bạn và thêm đoạn code dưới đây vào và thay thế Site keySecret key lấy được từ bước 2 vào trong đoạn code

/****************************************************
* Google reCapcha in WordPress
*****************************************************/
function add_google_script(){
	if( is_single()){
		wp_enqueue_script('google-recaptcha', 'https://www.google.com/recaptcha/api.js');
	}
}
add_action( 'wp_head', 'add_google_script', 10 );

/**
 * Google recaptcha add before the submit button
 */
function add_google_recaptcha($submit_field) {
    $submit_field['submit_field'] = '<div class="g-recaptcha" data-sitekey="your-data-sitekey"></div><br>' . $submit_field['submit_field'];
    return $submit_field;
}
if (!is_user_logged_in()) {
    add_filter('comment_form_defaults','add_google_recaptcha');
}
 
/**
 * Google recaptcha check, validate and catch the spammer
 */
function is_valid_captcha($captcha) {
$captcha_postdata = http_build_query(array(
                            'secret' => 'your-secret-key',
                            'response' => $captcha,
                            'remoteip' => $_SERVER['REMOTE_ADDR']));
$captcha_opts = array('http' => array(
                      'method'  => 'POST',
                      'header'  => 'Content-type: application/x-www-form-urlencoded',
                      'content' => $captcha_postdata));
$captcha_context  = stream_context_create($captcha_opts);
$captcha_response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify" , false , $captcha_context), true);
if ($captcha_response['success'])
    return true;
else
    return false;
}
 
function verify_google_recaptcha() {
$recaptcha = $_POST['g-recaptcha-response'];
if (empty($recaptcha))
    wp_die( __("<b>ERROR:</b> please select <b>I'm not a robot!</b><p><a href='javascript:history.back()'>« Back</a></p>"));
else if (!is_valid_captcha($recaptcha))
    wp_die( __("<b>Go away SPAMMER!</b>"));
}
if (!is_user_logged_in()) {
    add_action('pre_comment_on_post', 'verify_google_recaptcha');
}

Bước 5:

Quay trở lại trang bài viết và xem phần bình luận của bạn đã được thêm reCAPTCHA chưa nhé

7 Comments on "Thêm Google reCAPTCHA vào WordPress không sử dụng plugin"


    1. Đã ra bài hướng dẫn thêm vào đăng nhập – đăng ký bạn nhé Thêm Google reCAPTCHA vào form Đăng nhập – Đăng ký mặc định của WordPress

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *