Добавить пользовательский столбец в панель администратора пользователя

28

По умолчанию есть 5 столбцов с именем Имя пользователя Email Роль Сообщения в USERS. Теперь я хочу добавить еще один столбец с его контактным номером.

Как я могу достичь этого ??

Здесь, где показан черный ящик

Rohil_PHPBeginner
источник
У вас есть телефонный номер? Я имею в виду, может ли ваш пользователь добавлять номера телефонов в свой профиль?
Роберт Хюэ,
нет .. я просто хочу знать, как добавить .. это не исправить только этот контактный номер .. его можно б просто пустой столбец
Rohil_PHPBeginner
1
Если на вашем сайте много настраиваемых столбцов, возможно, вас заинтересует плагин с именем Admin Columns.
Брайан
Вы можете увидеть этот блог с подробным объяснением tekina.info/…
Аникет Сингх,

Ответы:

43

Хорошо, вот код, позволяющий пользователям добавлять номера телефонов. Вставьте этот полный код в файл functions.php. Это добавит новое поле в профиле пользователя для «Телефонного номера» и добавит пользовательскую таблицу столбцов в WordPress admin для телефона.

function new_contact_methods( $contactmethods ) {
    $contactmethods['phone'] = 'Phone Number';
    return $contactmethods;
}
add_filter( 'user_contactmethods', 'new_contact_methods', 10, 1 );


function new_modify_user_table( $column ) {
    $column['phone'] = 'Phone';
    return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );

function new_modify_user_table_row( $val, $column_name, $user_id ) {
    switch ($column_name) {
        case 'phone' :
            return get_the_author_meta( 'phone', $user_id );
        default:
    }
    return $val;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );

РЕДАКТИРОВАТЬ

Чтобы добавить два столбца, вам нужно внести некоторые изменения. Сравните оба кода, чтобы понять.

function new_modify_user_table( $column ) {
    $column['phone'] = 'Phone';
    $column['xyz'] = 'XYZ';
    return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );

function new_modify_user_table_row( $val, $column_name, $user_id ) {
    switch ($column_name) {
        case 'phone' :
            return get_the_author_meta( 'phone', $user_id );
        case 'xyz' :
            return '';
        default:
    }
    return $val;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );
Роберт Хюэ
источник
Используйте код снова. Я изменил его, чтобы вы могли видеть поле телефона в списке пользователей тоже.
Роберт Хюэ,
Большой! работал .. Но во время добавления пользователя, почему они не спрашивают номер телефона?
Rohil_PHPBeginner
Можете ли вы объяснить этот код? Я хочу добавить еще одно поле, но оно показывает мне ошибку.
Rohil_PHPBeginner
2
Я бы посоветовал добавить его в плагин для конкретного сайта, поскольку он не имеет ничего общего с внешним видом темы.
Helgatheviking
1
Наконец-то $user = get_userdata( $user_id );и return $returnабсолютно не нужно. Переменная $userне используется функцией и $returnне определена, поэтому она ничего не возвращает.
LoicTheAztec