Cách cấm người dùng WordPress

Tôi đã được yêu cầu một vài ngày trước để tạo ra một hệ thống sẽ cấm người dùng WordPress cài đặt. Vì vậy, tôi đã tạo một plugin đơn giản và tôi muốn chia sẻ với bạn những điều cơ bản của plugin này. Trong hướng dẫn này, chúng tôi sẽ đề cập đến các bộ lọc, hành động, quản lý cột của người dùng WordPress và một số điều tuyệt vời hơn.


Bước 1: Tạo Plugin

Một lần nữa, ở đây, nó rất phức tạp, tất cả những gì bạn phải làm là tạo một thư mục mới với các phần mềm wp-content / plugin được gọi là nghiến người dùng. Trong thư mục này, hãy tạo một tệp mới có tên là Ban ban-users.php, mở tệp này dán mã này:

Bước 2: Thêm một hộp kiểm trên trang hồ sơ người dùng

Điều đầu tiên chúng ta cần làm là thêm một hộp kiểm trên mỗi trang phiên bản hồ sơ người dùng. Khi bạn có thể kiểm tra hộp kiểm này, nó sẽ lưu trữ tùy chọn meta người dùng sẽ cho biết rằng người dùng không được phép nữa để đăng nhập vào trang web của bạn.

Đây là mã:

/ **
* Quản trị viên
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
hàm RC_admin_init () {

// Chỉnh sửa hồ sơ người dùng
add_action ('edit_user_profile', 'rc_edit_user_profile');
add_action ('edit_user_profile_update', 'rc_edit_user_profile_update');

}
add_action ('admin_init', 'rc_admin_init');

Mã này chỉ đơn giản là tạo một cuộc gọi đến một chức năng mà chúng ta phải tạo bây giờ. Chức năng này sẽ thêm một hộp kiểm vào trang hồ sơ người dùng.

/ **
* Thêm hộp kiểm tùy chỉnh vào trang phiên bản người dùng
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
hàm RC_edit_user_profile () {
if (! current_user_can ('edit_users')) {
trở về;
}

toàn cầu $ user_id;

// Người dùng không thể tự vô hiệu hóa
$ current_user = wp_get_cản_user ();
$ current_user_id = $ current_user-> ID;
if ($ current_user_id == $ user_id) {
trở về;
}

// Kiểm tra nếu được bật
$ đã kiểm tra = đã kiểm tra (get_user_option ('rc_bned', $ user_id, false));

// Hiển thị hộp kiểm
tiếng vang '
Cấm người dùng
'; }

Bây giờ chúng ta cần có chức năng sẽ lưu vào cơ sở dữ liệu giá trị của hộp kiểm:

/ **
* Lưu hộp kiểm tùy chỉnh
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
chức năng RC_edit_user_profile_update () {

if (! current_user_can ('edit_users')) {
trở về;
}

toàn cầu $ user_id;

// Người dùng không thể tự vô hiệu hóa
$ current_user = wp_get_cản_user ();
$ current_user_id = $ current_user-> ID;
if ($ current_user_id == $ user_id) {
trở về;
}

// Khóa
if (isset ($ _POST ['rc_ban']) && $ _POST ['rc_ban'] = 'on') {
RC_ban_user ($ user_id);
} khác {// Mở khóa
RC_unban_user ($ user_id);
}

}

Như bạn có thể thấy hàm mới này sử dụng hai hàm khác: rc_ban_users () và rc_unban_users (). Tên của họ khá rõ ràng, cái đầu tiên sẽ lưu trữ trong cơ sở dữ liệu thực tế là người dùng bị cấm, cái thứ hai sẽ mở khóa người dùng.

Bước 3: Cấm người dùng

Bây giờ, thời gian để tạo hàm RC_ban_users (). Trong hàm này, chúng ta cần kiểm tra xem một giá trị đã được lưu chưa và nếu không chúng ta cần lưu trữ giá trị đó. Đó là lý do tại sao tôi gọi một hàm mà tôi sẽ mô tả sau: rc_is_user_bned ():

/ **
* Cấm người dùng
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
chức năng RC_ban_user ($ user_id) {

$ old_status = rc_is_user_bned ($ user_id);

// Cập nhật trạng thái
if (! $ old_status) {
update_user_option ($ user_id, 'rc_bned', đúng, sai);
}
}

Bước 4: Hủy người dùng

Hàm sau đây ngược lại với chức năng mà chúng ta vừa tạo: chúng ta phải cung cấp khả năng cho những người dùng không bị cấm:

/ **
* Hủy người dùng
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
chức năng RC_unban_user ($ user_id) {

$ old_status = rc_is_user_bned ($ user_id);

// Cập nhật trạng thái
if ($ old_status) {
update_user_option ($ user_id, 'rc_bned', false, false);
}
}

Bước 5: Người dùng bị cấm?

Chúng tôi đã thấy trong RC_ban_users () và rc_unban_users () rằng chúng tôi sử dụng một hàm có tên là RC_is_user_bned () để kiểm tra xem người dùng có bị cấm hay không. Hãy tạo ra nó:

/ **
* Kiểm tra nếu người dùng đã bị cấm
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
chức năng rc_is_user_bned ($ user_id) {
return get_user_option ('rc_bned', $ user_id, false);
}

Về cơ bản, hàm này chỉ đơn giản trả về giá trị của tùy chọn được lưu trong rc_ban_users ().

Tại thời điểm này, chúng tôi có một hộp kiểm mới trên trang phiên bản người dùng nên như thế:

ban_users_1

Bước cuối cùng là móc một chức năng vào biểu mẫu đăng nhập để tránh người dùng bị cấm đăng nhập.

Bước 5: Tránh người dùng bị cấm đăng nhập

Để làm như vậy, chúng ta cần sử dụng một bộ lọc mặc định của WordPress có tên là wp_authenticate_user. Để bộ lọc này, chúng tôi sẽ móc một hàm có tên là RC RC_authenticate_user (). Hàm này sẽ sử dụng Lớp WP_Error.

/ **
* Kiểm tra xem người dùng có bị khóa trong khi quá trình đăng nhập không
*
* @access công khai
* @since 1.0
* @return khoảng trống
* /
chức năng RC_authenticate_user ($ user) {

if (is_wp_error ($ user)) {
trả về người dùng $;
}

// Lỗi trả về nếu tài khoản người dùng bị cấm
$ cấm = get_user_option ('rc_bned', $ user-> ID, false);
if ($ bị cấm) {
trả về WP_Error mới ('rc_bned', __ ('LỖI: Tài khoản người dùng này bị vô hiệu hóa. ',' RC '));
}

trả về người dùng $;
}

Bây giờ, chúng ta chỉ cần thêm bộ lọc:

add_filter ('wp_authenticate_user', 'rc_authenticate_user', 1);

Phần kết luận

Chúng tôi đã tạo một plugin thêm hộp kiểm vào trang phiên bản hồ sơ người dùng. Chúng tôi đã sử dụng chức năng thứ hai để lưu trữ giá trị trên hộp kiểm và chúng tôi tạo một chức năng để cấm người dùng WordPress và người khác mở khóa để mở khóa người dùng. Chúng tôi cũng tạo ra một chức năng nhỏ để kiểm tra xem người dùng có bị cấm hay không. Và cuối cùng chúng tôi đã kết nối một chức năng với bộ lọc wp_authenticate_user trên sử dụng lớp mặc định WP_Error WordPress.

Nếu bạn thích hướng dẫn này, bạn sẽ yêu thích phiên bản cao cấp của plugin này: Users Access Manager.

Tải xuống toàn bộ mã trên Github

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map