php - 如何在编辑用户页面中添加自定义字段
问题描述
我想在编辑用户个人资料页面的联系信息部分添加新字段。我正在使用此代码,但它在帐户管理部分之后添加了新部分,但我想在联系信息部分的电子邮件之后添加它。
<?php
add_action( 'show_user_profile', 'yoursite_extra_user_profile_fields' );
add_action( 'edit_user_profile', 'yoursite_extra_user_profile_fields' );
function yoursite_extra_user_profile_fields( $user ) {
?>
<h3><?php _e("User profile information", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="phone"><?php _e("Operational Manager Email"); ?></label></th>
<td>
<input type="text"
name="operational_email"
class="regular-text"
value="<?php echo esc_attr( get_the_author_meta( 'operational_email', $user->ID ) ); ?>"/>
<br />
<span class="description">
<?php _e("Please enter opertional manager email.">
</span>
</td>
</tr>
</table>
<?php
}
add_action( 'personal_options_update', 'yoursite_save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'yoursite_save_extra_user_profile_fields' );
function yoursite_save_extra_user_profile_fields( $user_id ) {
$saved = false;
if ( current_user_can( 'edit_user', $user_id ) ) {
update_user_meta(
$user_id,
'operational_email',
$_POST['operational_email']
);
$saved = true;
}
return true;
}
解决方案
好吧,我在最近的项目中的主题中完成了它,但我是从过滤器名称“user_contactmethods”中完成的阅读文档:https ://codex.wordpress.org/Plugin_API/Filter_Reference/contactmethods
add_filter( 'user_contactmethods', 'extra_contact_info' );
function extra_contact_info( $fields ) {
$fields['email'] = __( 'Operational Manager Email' );
return $fields;
}
推荐阅读
- postgresql - 连接同一个表的两列的内容产生一个带双引号的名称
- javascript - onClick 获取元素的值并将值作为 React 中的 url 传递给下一个视图/组件
- javascript - 如何检测浏览器通知
- linux - X11 - 我如何确定 WM 是否会捕获 Key Combo?
- javascript - 添加/删除滑块后的 FlexSlider 同步
- python-mss - 如何在屏幕截图中捕获鼠标指针
- azure-devops - 从 sql 中删除管理身份用户
- amazon-web-services - aws 应用程序负载均衡器找到自动生成的侦听器
- android - 如何最好地在从 Xamarin 窗体视图派生的控件中公开本机 Android 控件的属性
- php - Magento2:邮递员查询以更新 SKU 的状态 [启用/禁用]