在这里的另一个问题中,用户问了How to add a custom fields in Edit Account page
我希望做同样的事情,但还要在用户个人资料页面上添加相同的自定义字段,管理员可以在其中看到它。这可能吗?
答案 0 :(得分:1)
已更新-要在Wordpress管理员用户页面中添加这两个“收藏夹颜色”自定义字段,您将使用以下内容:
// Add the custom field "favorite_color" in admin user
add_action( 'show_user_profile', 'add_extra_custom_user_data', 1, 1 );
add_action( 'edit_user_profile', 'add_extra_custom_user_data', 1, 1 );
function add_extra_custom_user_data( $user )
{
?>
<h3><?php _e("Other details",'woocommerce' ); ?></h3>
<table class="form-table">
<tr>
<th><label for="favorite_color"><?php _e( 'Favorite color', 'woocommerce' ); ?></label></th>
<td><input type="text" name="favorite_color" value="<?php echo esc_attr(get_the_author_meta( 'favorite_color', $user->ID )); ?>" class="regular-text" /></td>
</tr><tr>
<th><label for="favorite_color2"><?php _e( 'Favorite color 2', 'woocommerce' ); ?></label></th>
<td><input type="text" name="favorite_color2" value="<?php echo esc_attr(get_the_author_meta( 'favorite_color2', $user->ID )); ?>" class="regular-text" /></td>
</tr>
</table>
<br />
<?php
}
// Save the custom field 'favorite_color' in admin user
add_action( 'personal_options_update', 'save_extra_custom_user_data' );
add_action( 'edit_user_profile_update', 'save_extra_custom_user_data' );
function save_extra_custom_user_data( $user_id )
{
if( ! empty($_POST['favorite_color']) )
update_user_meta( $user_id, 'favorite_color', sanitize_text_field( $_POST['favorite_color'] ) );
if( ! empty($_POST['favorite_color2']) )
update_user_meta( $user_id, 'favorite_color2', sanitize_text_field( $_POST['favorite_color2'] ) );
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。