Đăng ngày: 28/03/2018 bởi PhuocIT | Tổng 1457 Lượt Xem
Để tìm hiểu rõ hơn về chức năng này hôm nay mình xin hướng dẫn cho các bạn cách custom user meta field trong wordpress.
Mặc định khi cài wordpress lên, thì tương ứng với mỗi user sẽ có một số trường để lưu các thông tin của user đó như:
Các trường mặc định khi cài wordpress lên
Các trường này được xem là user meta, việc mà chúng ta đi tạo một trường mới mà mặc định không có người ta gọi là custom user meta. Vậy là sao để custom user meta trong wordpress? chúng ta bắt đầu đi tìm hiểu nhé!.
Đến thời điểm hiển tại đây cũng là tính năng này khá phổ biến, nên có rất nhiều plugin hỗ trợ vấn đề này ví dụ như: Use meta, User Meta Manager, Toolset types… Trong số các plugin đó mình khuyên bạn dùng plugin toolset types, đây là plugin mình đã sử dụng, cảm thấy rất tốt và cũng có loạt bài viết hướng dẫn sử dụng plugin toolset types này.
Để custom user meta field sử dụng plugin toolset types các bạn vào: wp-admin -> Toolset -> Các trường dữ liệu người dùng, Ở đây các bạn tiến hành tạo nhóm trường, sau đó tạo các field. Có rất nhiều kiểu để các bạn lựa chọn như: Kiểu text, số, hình ảnh, ngày giờ, văn bản, select option…
Để dễ hình dùng mình sẽ đưa ra một yêu cầu sau đó chúng ta sẽ đi thực hiện yêu cầu đó nhé!
Ví dụ bày chừ mình cần tạo một trường để lưu địa chỉ của mỗi user, có nghĩa là khu vực thêm và chỉnh sửa thông tin của mỗi user sẽ xuất hiện ô textbox để chúng ta nhập địa chỉ. Để làm chức năng chúng ta thực hiện như sau.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<span class="php"><span class="hljs-meta"><?php</span></span><span class="php"> add_action( <span class="hljs-string">'show_user_profile'</span>, <span class="hljs-string">'my_show_extra_profile_fields'</span> ); add_action( <span class="hljs-string">'edit_user_profile'</span>, <span class="hljs-string">'my_show_extra_profile_fields'</span> ); <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_show_extra_profile_fields</span><span class="hljs-params">( $user )</span> </span>{ <span class="hljs-meta">?></span></span> <span class="hljs-tag"><<span class="hljs-name">h3</span>></span>Thông tin cá nhân<span class="hljs-tag"></<span class="hljs-name">h3</span>></span> <span class="hljs-tag"><<span class="hljs-name">table</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"form-table"</span>></span> <span class="hljs-tag"><<span class="hljs-name">tr</span>></span> <span class="hljs-tag"><<span class="hljs-name">th</span>></span><span class="hljs-tag"><<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"address"</span>></span>Địa chỉ<span class="hljs-tag"></<span class="hljs-name">label</span>></span><span class="hljs-tag"></<span class="hljs-name">th</span>></span> <span class="hljs-tag"><<span class="hljs-name">td</span>></span> <span class="hljs-tag"><<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"address"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"address"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"regular-text"</span> /></span><span class="hljs-tag"><<span class="hljs-name">br</span> /></span> <span class="hljs-tag"><<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"description"</span>></span>Nhập địa chỉ<span class="hljs-tag"></<span class="hljs-name">span</span>></span> <span class="hljs-tag"></<span class="hljs-name">td</span>></span> <span class="hljs-tag"></<span class="hljs-name">tr</span>></span> <span class="hljs-tag"></<span class="hljs-name">table</span>></span> <span class="php"><span class="hljs-meta"><?php</span> } <span class="hljs-meta">?></span></span> |
Trong đó:
Sau khi chèn đoạn code này vào file function các bạn vào: wp-admin -> Thành viên-> sồ sơ của bạn, hoặc wp-admin-> Thành Viên-> chỉnh thông tin của 1 thành viên nào đó các bạn sẽ thấy được như hình bên dưới, có nghĩa các bạn đã thành công trong việc thêm khu vực để nhập địa chỉ:
Thêm user meta field thành công
1 2 3 4 5 6 7 8 9 |
<span class="php"><span class="hljs-meta"><?php</span> add_action( <span class="hljs-string">'personal_options_update'</span>, <span class="hljs-string">'my_save_extra_profile_fields'</span> ); add_action( <span class="hljs-string">'edit_user_profile_update'</span>, <span class="hljs-string">'my_save_extra_profile_fields'</span> ); <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_save_extra_profile_fields</span><span class="hljs-params">( $user_id )</span> </span>{ <span class="hljs-keyword">if</span> ( !current_user_can( <span class="hljs-string">'edit_user'</span>, $user_id ) ) <span class="hljs-keyword">return</span> <span class="hljs-keyword">false</span>; update_usermeta( $user_id, <span class="hljs-string">'address'</span>, $_POST[<span class="hljs-string">'address'</span>] ); } <span class="hljs-meta">?></span></span> |
Trong đó:
1 |
<span class="php"><span class="hljs-meta"><?php</span> the_author_meta( $meta_key, $user_id ); <span class="hljs-meta">?></span></span> |
Trong đó: $meta_key là key của trường mà bạn cần lấy, ở đây là address, $user_id là id của user bạn cần lấy.
Hôm nay mình đã hướng dẫn cho các bạn cách custom user meta field trong wordpress. Đây là một tính năng rất cần thiết khi bạn muốn phát triển những tính năng thêm cho user trong wordpress. Đây là một trong những tính năng biến wordpress trở thành cms vô đối. Hy vọng với chút kiến thức nhỏ này sẽ giúp ích cho các bạn trong quá trình học wordpress, hãy theo chuyển mục hướng dẫn lập trình theme wordpress trên blog để cùng học wordpress hiệu quả nhé!
Nhớ ghi nguồn tại Phước IT Blog - PhuocIT.Com nhé!
Phuocit Chia sẻ miễn phí , hỗ trợ nhiệt tình!