2015-05-27 2 views
3

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

Как я могу добавить в этот столбец?

Ниже метаинформации данные им с помощью

add_user_meta($userId,'code','12345'); 

Мы просто хотим, чтобы иметь возможность добавить к представлению на users.php в таблице, отображающей имя пользователя электронной почты и роль.

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

add_filter('manage_users_columns', 'pippin_add_user_id_column'); 
function pippin_add_user_id_column($columns) { 
    $columns['user_id'] = 'User ID'; 
    return $columns; 
} 

add_action('manage_users_custom_column', 'pippin_show_user_id_column_content', 10, 3); 
function pippin_show_user_id_column_content($value, $column_name, $user_id) { 
    $user = get_userdata($user_id); 
    if ('user_id' == $column_name) 
     return $user_id; 
    return $value; 
} 

ответ

8

Этот пример был создан с помощью этих двух страниц из кода WordPress.

https://codex.wordpress.org/Plugin_API/Action_Reference/edit_user_profile https://codex.wordpress.org/Plugin_API/Action_Reference/personal_options_update

Он предназначен для отображения и обновления мета пользовательские данные.

<?php 

// Hooks near the bottom of profile page (if current user) 
add_action('show_user_profile', 'custom_user_profile_fields'); 

// Hooks near the bottom of the profile page (if not current user) 
add_action('edit_user_profile', 'custom_user_profile_fields'); 

// @param WP_User $user 
function custom_user_profile_fields($user) { 
?> 
    <table class="form-table"> 
     <tr> 
      <th> 
       <label for="code"><?php _e('Custom Meta'); ?></label> 
      </th> 
      <td> 
       <input type="text" name="code" id="code" value="<?php echo esc_attr(get_the_author_meta('code', $user->ID)); ?>" class="regular-text" /> 
      </td> 
     </tr> 
    </table> 
<?php 
} 


// Hook is used to save custom fields that have been added to the WordPress profile page (if current user) 
add_action('personal_options_update', 'update_extra_profile_fields'); 

// Hook is used to save custom fields that have been added to the WordPress profile page (if not current user) 
add_action('edit_user_profile_update', 'update_extra_profile_fields'); 

function update_extra_profile_fields($user_id) { 
    if (current_user_can('edit_user', $user_id)) 
     update_user_meta($user_id, 'code', $_POST['code']); 
} 

?> 
+0

Я искал, чтобы добавить поле в users.php, где он показывает имя пользователя, адрес электронной почты и роли. Мы не хотим его редактировать. – James

+0

Так что просто используйте первую часть кода для ее отображения и измените элемент ввода на что-то не редактируемое. – Danijel

+0

Я не хочу отображать его на user.php. Я хочу отобразить его на user.php. Это будет страница, отображающая все имена пользователей, электронные письма и роли в таблице. – James

0

Понимая это немного старой нити, однако я застрял на очень похожей проблемой, и думал, что я бы поделиться тем, что я обнаружил, что оказалось очень простое решение.

<?php 
add_filter('manage_users_columns', 'pippin_add_user_id_column'); 
function pippin_add_user_id_column($columns) { 
    $columns['user_id'] = 'User ID'; 
    return $columns; 
}  

add_action('manage_users_custom_column', 'pippin_show_user_id_column_content', 10, 3); 
function pippin_show_user_id_column_content($value, $column_name, $user_id) { 
    $user = get_userdata($user_id); 
    if ('user_id' == $column_name) 
     return $user_id; 
    return $value; 
} 
?> 

Кредит: https://pippinsplugins.com/add-user-id-column-to-the-wordpress-users-table/

+0

Это точный код в исходном вопросе, дословно. Он не отвечает, как добавить поле custom_meta. – Mordred

0

Для добавления пользовательского user_meta полого users.php вам нужно сделать следующее:

function yoursite_manage_users_columns($columns) { 

    // $columns is a key/value array of column slugs and names 
    $columns[ 'custom_field' ] = 'Subscription'; 

    return $columns; 
} 

add_filter('manage_users_columns', 'yoursite_manage_users_columns', 10, 1); 

function yoursite_manage_users_custom_column($output, $column_key, $user_id) { 

    switch ($column_key) { 
     case 'custom_field': 
      $value = get_user_meta($user_id, 'custom_field', true); 

      return $value; 
      break; 
     default: break; 
    } 

    // if no column slug found, return default output value 
    return $output; 
} 

add_filter('manage_users_custom_column', 'yoursite_manage_users_custom_column', 10, 3); 
Смежные вопросы