Hướng dẫn sử dụng wp_insert_user có ví dụ cụ thể

wp_insert_user là hàm dùng để cập nhật thông tin thành viên (update user) hoặc để thêm (insert) thành viên mới vào cơ sở dữ liệu. wp_insert_user() có thể được sử dụng ở bất cứ đâu, miễn là gọi được hàm này, kể cả ở code của các bên thứ ba.

Mặc định wp_insert_user($userdata) sẽ trả về id của thành viên được thêm, hoặc nếu id của thành viên được xác định trong mảng $userdata rồi thì nó sẽ cập nhật thông tin của thành viên có id đã được xác định.
Hầu hết các trường trong mảng $userdata có các bộ lọc được liên kết với các giá trị.

Các trường hợp ngoại lệ là ‘ID’, ‘rich_editing’, ‘syntax_highlighting’, ‘comment_shortcuts’, ‘admin_color’, ‘use_ssl’, ‘user_registered’, ‘user_activation_key’, ‘spam’ và ‘role’. Các bộ lọc có tiền tố ‘pre_user_’ theo sau là tên trường. Ví dụ như trường ‘description’ sẽ có bộ lọc được gọi là ‘pre_user_description’ có thể được nối vào.

wp_insert_user wordpress

Hàm wp_insert_user nằm ở đâu:

Các bạn có thể tìm thấy hàm này ở file: wp-includes/user.php

Các bài khác cùng chủ đề:
Hướng dẫn cài đặt, sử dụng, cấu hình Contact Form 7 đầy đủ nhất
Hướng dẫn sử dụng Cloudflare DNS, Cloudflare CDN và bảo mật từ A-Z
get_the_post_thumbnail_url – Get the post thumbnail URL with example
WP_Query: Tất cả những thông tin bạn cần biết

Các tham số $userdata truyền vào wp_insert_user

Đây là các thông số có thể sử dụng để truyền vào hàm wp_insert_user. Trong số này quan trọng nhất là ID. Nếu có ID thì nó sẽ update thông tin thành viên với ID đó. Nếu không có ID thì nó sẽ thêm mới thành viên và giá trị trả về là ID của thành viên được thêm.

Cách sử dụng hàm wp_inser_user

Cách sử dụng hàm wp_insert_user khá đơn giản. Đầu tiên bạn phải khai báo các trường cần thêm cho user đó trong mảng $userdata. Sau đó dùng hàm này để thêm vào.
Ví dụ khi thêm mới thành viên:

Ví dụ khi cập nhật (update) thông tin thành viên.

Vì hàm này không mã hóa thông tin mật khẩu, nên nếu các bạn dùng wp_insert_user mà để password dạng text thì user sẽ không sử dụng được mật khẩu đó. Ví dụ bên trên mình phải khai báo bằng cách mã hóa md5 cho mật khẩu abc1234.

Nếu các bạn cập nhật thông tin thành viên thì nên sử dụng hàm wp_update_user thì khi khai báo user_pass => ‘abc1234’ nó sẽ tự động mã hóa mật khẩu dùng hàm wp_hash_password().

wp_insert_user và user role

Như bên trên đã phân tích, khi thêm thành viên mới (add user), ta có thể truyền giá trị role vào mảng $userdata, nhưng mình gặp trường hợp wp_insert_user role not working rồi. Đây là cách xử lý của mình để có thể thêm user role một cách chuẩn xác:

Trong trường hợp này, để giải quyết vấn đề wp_insert_user role not working thì mình làm 2 bước, bước đầu tiên là thêm thành viên đó vào cơ sở dữ liệu. Sau đó khi thêm thành công nó sẽ trả về id của thành viên đó nên mình tiếp tục cập nhật role cho thành viên đó dùng hàm wp_update_user

wp_insert_user trả về giá trị 0 khi thêm thành viên mới

Một vấn đề nữa khi sử dụng hàm này là thi thoảng khi thêm thành viên mới, giá trị trả về không phải là ID của thành viên mà lại là 0. Đây là trường hợp mình cũng từng gặp phải. Nguyên nhân là do một trong các trường các bạn insert dữ liệu trong mảng $userdata bị quá ký tự. Ví dụ như trường url nó chỉ nhận 100 ký tự, nếu bạn chèn website vào trường url có quá 100 ký tự thì chắc chắn giá trị trả về của hàm wp_insert_user($userdata) chắc chắn sẽ là 0.

Một số ví dụ mẫu dùng hàm wp_insert_user()

Hàm đăng ký thành viên qua Ajax

Hàm đăng ký thành viên hoặc login sử dụng Instagram

Hàm đăng ký thành viên trong plugin hoặc mã nguồn của bên thứ 3:

MASS IMPORT USERS INTO WORDPRESS

wp_insert_user khác gì so với wp_create_user

Để hiểu sự khác nhau giữa wp_insert_user và wp_create_user thì ta xem hai ví dụ bên dưới đây

wp_create_user:

wp_insert_user:

Có thể thấy, hai hàm này đều có chức năng là insert thành viên vào cơ sở dữ liệu, tuy nhiên wp_create_user khá đơn giản. Nó chỉ thêm username, mật khẩu và email của thành viên. Ngoài ra không thể thêm các meta data cho user được.  wp_insert_user thì khác, nó có thể thêm khá nhiều dữ liệu được truyền trong mảng $userdata.

Trên thực tế thì wp_create_user cũng sẽ dùng hàm wp_insert_user để thêm thành viên vào cơ sở dữ liệu. Có thể thấy rõ điều này khi xem chi tiết về hàm wp_create_user  tại file này: wp-includes/user.php

Trên đây là những thông tin cần thiết và hữu ích trong quá trình sử dụng hàm wp_insert_user. Hy vọng nó mang lại cho các bạn cái nhìn chi tiết hơn về cách sử dụng hàm này. Nếu có khó khăn gì hoặc cần trợ giúp gì, các bạn có thể comment bên dưới, bọn mình sẽ cố gắng hỗ trợ nhanh nhất có thể.

Ngoài ra, các bạn cũng có thể tham khảo thêm một số thông tin về hàm này tại trang web dành cho nhà phát triển ứng dụng WordPress tại đây: https://developer.wordpress.org/reference/functions/wp_insert_user/

Đánh giá
Share.
About Author