首页 > 解决方案 > 如何在编辑用户页面中添加自定义字段

问题描述

我想在编辑用户个人资料页面的联系信息部分添加新字段。我正在使用此代码,但它在帐户管理部分之后添加了新部分,但我想在联系信息部分的电子邮件之后添加它。

<?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;
}

在此处输入图像描述

在此处输入图像描述

标签: phpwordpresswoocommerce

解决方案


好吧,我在最近的项目中的主题中完成了它,但我是从过滤器名称“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;
}

推荐阅读