Sửa lỗi captcha trong giao diện cũ

Trong thời gian vừa qua có một số bạn sử dụng hosting nhưng hệ thống không cho khởi tạo mã captcha hoặc tạo session không được, vì lý do này mà khi đăng nhập hoặc sử dụng một số tính năng có sử dụng captcha, hệ thống sẽ báo lỗi mặc dù người dùng gõ đúng mã bảo mật.

Sử dụng mã captcha WordPress

Hiện tại bên mình đã tạo bộ nhân mới để phát triển giao diện, đối với các giao diện sử dụng phiên bản nhân cũ thì bạn chỉ việc làm theo hướng dẫn của bài viết này để tự chỉnh sửa khi gặp lỗi hoặc có thể gửi mail liên hệ để bên mình cập nhật lại cho các bạn.

Để xác định giao diện của bạn đang sử dụng là phiên bản mới hay cũ, bạn mở thư mục gốc của giao diện lên, nếu bên trong thư mục này có thư mục đặt tên là sb-theme ngang hàng với tập tin functions.php thì đây là bản giao diện được viết trên bộ nhân cũ.

Tiếp tục, bạn theo đường dẫn bên dưới và mở class SB_Captcha lên để chỉnh sửa lại code:

sb-theme\inc\class-sb-captcha.php

Bản mở tập tin bên trên lên bằng bất kỳ trình soạn thảo nào cũng được, mình khuyến nghị bạn nên dùng phần mềm Notepad++. Bạn sử dụng công cụ tìm kiếm của phần mềm và tìm tới dòng:

public static function check($code)

Hàm này có chức năng kiểm tra mã captcha đúng hay sai, tuy nhiên do một số hosting không hỗ trợ nên bây giờ bạn chỉ cần chỉnh sửa lại kết quả trả về luôn đúng là được.

public static function check($code) {
	if(!self::use_captcha() || !self::required_plugins_installed()) {
		return true;
	}
	$result = false;
	$file_name = SB_Captcha::get_captcha_session();
	if(!empty($file_name)) {
		$transient_keys = SB_Cache::build_captcha_transient_name($file_name);
		$transient_key = $transient_keys['code'];
		if(false !== ($captcha_code = get_transient($transient_key))) {
			if(SB_Core::password_compare($code, $captcha_code)) {
				$result = true;
			}
		}
	}
	self::remove($file_name);
	return $result;
}

Bên trên là hàm kiểm tra mã bảo mật gốc, có thể nội dung sẽ khác nhau tùy vào phiên bản giao diện bạn đang sử dụng, bạn chỉ cần xóa hết nội dung bên trong hàm và trả về kết quả luôn đúng là được.

public static function check($code) {
	return true;
}

Sau khi bạn hoàn tất thao tác chỉnh sửa, hãy lưu tập tin lại và upload đè lên hosting. Sau khi đã thực hiện xong thao tác này, bạn thử đăng nhập lại vào hệ thống của WordPress và xem kết quả nhé.

Rất xin lỗi các bạn vì sự bất tiện này, hiện tại bên mình đang sử dụng bộ nhân mới để viết giao diện và plugin cho WordPress, do vậy đối với các giao diện được thực hiện trước đó bên mình vẫn sẽ cập nhật nếu có lỗi xảy ra, tuy nhiên sẽ không bổ sung thêm tính năng mới mà chỉ khắc phục lỗi dựa trên code có sẵn hiện tại.

Xem thêm: Cách gỡ bỏ captcha trên giao diện cũ

Nếu bạn thực hiện không được thì hãy liên hệ lại để bên mình trợ giúp nhé, nhớ sao lưu giao diện trước khi tiến hành chỉnh sửa. Bạn chỉ cần nèn giao diện hiện tại lại dưới dạng tập tin zip, sau đó thì chỉnh sửa như mình hướng dẫn bên trên. Chân thành cảm ơn các bạn và chúc thành công.

3 bình luận cho “Sửa lỗi captcha trong giao diện cũ

    1. Chào bạn, cái này là giải pháp tạm thời thôi, để giải quyết triệt để thì cần phải vào bên trong code và bỏ luôn chức năng captcha đi. Nếu bạn muốn hủy bỏ hoàn toàn captcha luôn thì báo lại để bên mình chỉnh sửa cho bạn nhé.

      Cảm ơn bạn.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *