Как добавить настраиваемое поле на странице редактирования пользователя - PullRequest
0 голосов
/ 03 мая 2018

Я хотел бы добавить новое поле в разделе контактной информации на странице редактирования профиля пользователя. Я использую этот код, но он добавляет новый раздел после раздела управления учетной записью, но я хочу добавить его после электронной почты в разделе контактной информации.

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

enter image description here

enter image description here

1 Ответ

0 голосов
/ 03 мая 2018

Ну, я сделал это в своей теме в недавнем проекте, но я сделал это из имени фильтра '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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...