Hướng dẫn get user và custom user field trong wordpress

Ngày đăng: 07 - 05 - 2020 Lượt xem: 121 lượt

Tiếp tục với seri hướng dẫn lập trình theme wordpress, hôm nay mình sẽ hướng dẫn cho các bạn cách custom user field cũng như cách get danh sách user ra ngoài frontend.

Khi làm website wordpress khách hàng ít khi chú ý đến phần user. Nhưng nếu đụng đến những website có quản lý thành viên thì anh em coder thường hay bỡ ngỡ và rất tốn thời gian.

Vì thế hôm nay mình sẽ tổng hợp một số kiến thức liên quan đến user trong wordpress.

Một số hàm liên quan đến user trong wordpress

  • is_user_logged_in() -> Hàm này kiểm tra user có đang login vào web hay không
  • get_current_user_id() -> Get id của user đang login
  • wp_get_current_user() -> Get thông tin của user đang login
  • get_user_by(‘id’, 1) -> Get user user khi biết id
  • get_users($args) -> Get list user với tham số
  • get_avatar(1, 32 ) -> Get avatar của user: 1 là id user, 32 là kích thước avatar (32px)
  • get_user_meta($id, $key, true) -> Get user meta field

Custom user field trong wordpress

Custom user field là gì?

Mặc định mỗi user trong wordpress sẽ có các trường như: Tên đăng nhập, email, tên hiển thị, avatar, mô tả… Và cũng như những chức năng custom khác mình đã giới thiệu, thì wordpress cũng cung cấp chức năng custom hay là thêm mới 1 trường của user.

Việc thêm mới một trường của user người ta gọi là custom user field.

Tạo custom user field

Để dễ hình dùng mình sẽ có ví dụ: Tạo thêm 1 field để lưu địa chỉ của user

Để tạo custom user field trong wordpress các bạn thêm đoạn code này vào file functions.php của theme đang dùng nha.

*Thêm khu vực nhập địa chỉ cho user

<?php
add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );
function my_show_extra_profile_fields( $user ) { ?>
 <h3>Thông tin cá nhân</h3>
 <table class="form-table">
 <tr>
   <th><label for="address">Địa chỉ</label></th>
   <td>
     <input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text" /><br />
     <span class="description">Nhập địa chỉ</span>
   </td>
 </tr>
 </table>
<?php } ?>

Giải thích:

  • my_show_extra_profile_fields là hàm hiển thị from nhập địa chỉ, hàm này bạn có thể đặt tên tùy thích. Form này giống như một form nhập liệu bình thường bạn có thể nhập nhiều field khác nhau. Hàm này được móc vào 2 action là show_user_profile, edit_user_profile
  • Action show_user_profile là action cho phép hiển thị form nhập địa chỉ ở khu vực xem trang cá nhân của 1 user.
  • Action edit_user_profile là action cho phép hiển thị form nhập địa chỉ ở khu vực chỉnh sửa thông tin của cá nhân của 1 user nào đó.
  • Name = “address”: address là key của meta field, key này sử dụng để lấy dự liệu ra ngoài

*Lưu thông tin địa chỉ vào trong database

<?php 
add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );
    function my_save_extra_profile_fields( $user_id ) {
        if ( !current_user_can( 'edit_user', $user_id ) )
        return false;
        update_usermeta( $user_id, 'address', $_POST['address'] );
    } 
?>

Giải thích:

  • my_save_extra_profile_fields là hàm thực hiển việc lưu địa chỉ vào database. Hàm này được móc vào trong 2 action là: personal_options_update và edit_user_profile_update
  • personal_options_update: Là action thực hiện việc lưu thông tin ở khu vực xem thông tin user.
  • edit_user_profile_update: Là action thực hiện việc lưu thông tin ở khu vực edit user.

=> Để tạo custom user field bạn phải sử dụng cả 2 đoạn code trên nha, kết quả như sau

Hướng dẫn get user và custom user field trong wordpress

Tạo custom user field bằng plugin

Cũng như tất cả các chức năng khác trong wordpress, thì custom user field này cũng có hàng tá plugin hỗ trợ như:

Mình có share plugin acf pro tại đây bạn nào cần thì download về nha:

Download code "Plugin ACF Pro phiên bản 5.8.9"
Để download code vui lòng thực hiện các bước sau!
Bước 1: Like fan page của học wordpress:
Bước 2: Để lại email, hệ thống sẽ kiểm tra và gởi code về mail trong vòng 10 phút!
Bonus:
Lưu ý: Một số trường hợp mail sẽ gởi vào mục spam. Các bạn vui lòng check kỹ ạ!

Get danh sách user trong wordpress

Mình sẽ lấy danh sách 20 user mới nhất của website. Đồng thời hiển thị tên, địa chỉ, avatar của user, các bạn chèn đoạn code sau vào khu vực cần hiển thị list user nha.

<?php 
	$array = array(
		'number' => 20,
		'orderby' => 'id',
		'order' => 'DESC'
	);
	$listUser = get_users($array);
?>	
<div class="sidebar-child">
	<div class="list-user">
		<ul>
			<?php foreach ($listUser as $key => $value) { ?>
			<li data-toggle="tooltip" data-placement="left" title="<?php echo $value->display_name; ?>">
				<p><?php echo $value->display_name; ?></p>
                                <p><?php echo the_author_meta( 'address', $value->ID ); ?></p>
				<a class="ico-brod">
					<?php echo get_avatar( $value->user_email, 40 ); ?>
				</a>
			</li>
			<?php } ?>
		</ul>
	</div>
</div>

Lời kết:

Như vậy là hôm nay mình đã hướng dẫn cho các bạn chức năng custom user field, hy vọng nó sẽ có ích trong quá trình học lập trình theme của các bạn.

Hẹn gặp lại trong các bài viết sau nhé.

0 0 vote
Article Rating

guest
0 Comments
Inline Feedbacks
View all comments

Bài viết liên quan

Hướng dẫn tạo menu và get menu trong wordpress

Hướng dẫn tạo menu và get menu trong wordpress

07 - 05 - 2020

Menu trong wordpress là một thành phần khá quan trọng. Hầu hết các website wordpress đều có chức năng...

Hướng dẫn custom term field trong wordpress

Hướng dẫn custom term field trong wordpress

05 - 05 - 2020

Bài trước mình đã hướng dẫn cho bạn cách custom taxonomy trong wordpress, để tiếp nối các tính năng...

Custom taxonomy trong wordpress từ a đến z và get chúng ra front end

Custom taxonomy trong wordpress từ a đến z và get chúng ra front end

04 - 05 - 2020

Chào anh em! Tiếp tục với chủ đề hướng dẫn lập trình theme wordpress hôm nay mình sẽ hướng...

Custom field trong wordpress và các vấn đề liên quan

Custom field trong wordpress và các vấn đề liên quan

29 - 04 - 2020

Tiếp tục với loạt bài viết về hướng dẫn lập trình theme wordpress hôm nay mình sẽ giới thiệu...

Hướng dẫn custom post type trong wordpress từ a đến z

Hướng dẫn custom post type trong wordpress từ a đến z

29 - 04 - 2020

Hôm nay chúng ta sẽ đi tìm hiểu một trong những tính năng biến wordpress trở thành CMS mạnh...

Hướng dẫn get category trong wordpress từ a đến z

Hướng dẫn get category trong wordpress từ a đến z

29 - 04 - 2020

Tiếp tục với chủ đề lập trình theme wordpress, bài viết này mình sẽ hướng dẫn get category trong...

0
Would love your thoughts, please comment.x
()
x