在 wordpress 仪表板中编辑自定义用户元数据

问题描述

我想在 wordpress 仪表板中为用户添加一些自定义元数据。元数据将是一个唯一的密钥,基本上是一串随机字符。我想(作为管理员)单击用户个人资料页面上的按钮并生成或重新生成唯一密钥。我不确定如何添加按钮代码以及如何将其链接到一些可以创建唯一键的 php 代码。我从下面的代码开始,它来自 https://gist.github.com/magnific0/29c32c7dabc89ab9cae5 并做了一些小的改动。此代码可以为用户添加自定义元数据字段,现在我希望能够通过单击按钮生成新的唯一键。

<?php

function mysite_custom_define() {
  $custom_meta_fields = array();
  $custom_meta_fields['uniqueKey'] = 'Unique Key';
  return $custom_meta_fields;
}

function mysite_columns($defaults) {
  $meta_number = 0;
  $custom_meta_fields = mysite_custom_define();
  foreach ($custom_meta_fields as $meta_field_name => $meta_disp_name) {
    $meta_number++;
    $defaults[('mysite-usercolumn-' . $meta_number . '')] = __($meta_disp_name,'user-column');
  }
  return $defaults;
}

function mysite_custom_columns($value,$column_name,$id) {
  $meta_number = 0;
  $custom_meta_fields = mysite_custom_define();
  foreach ($custom_meta_fields as $meta_field_name => $meta_disp_name) {
    $meta_number++;
    if( $column_name == ('mysite-usercolumn-' . $meta_number . '') ) {
      return get_the_author_meta($meta_field_name,$id );
    }
  }
}

function mysite_show_extra_profile_fields($user) {
  print('<h3>Extra profile information</h3>');

  print('<table class="form-table">');

  $meta_number = 0;
  $custom_meta_fields = mysite_custom_define();
  foreach ($custom_meta_fields as $meta_field_name => $meta_disp_name) {
    $meta_number++;
    print('<tr>');
    print('<th><label for="' . $meta_field_name . '">' . $meta_disp_name . '</label></th>');
    print('<td>');
    print('<input type="text" name="' . $meta_field_name . '" id="' . $meta_field_name . '" value="' . esc_attr( get_the_author_meta($meta_field_name,$user->ID ) ) . '" class="regular-text" /><br />');
    print('<span class="description"></span>');
    print('</td>');
    print('</tr>');
  }
  print('</table>');
}

function mysite_save_extra_profile_fields($user_id) {

  if (!current_user_can('edit_user',$user_id))
    return false;

  $meta_number = 0;
  $custom_meta_fields = mysite_custom_define();
  foreach ($custom_meta_fields as $meta_field_name => $meta_disp_name) {
    $meta_number++;
    update_user_meta( $user_id,$meta_field_name,$_POST[$meta_field_name] );
  }
}

add_action('show_user_profile','mysite_show_extra_profile_fields');
add_action('edit_user_profile','mysite_show_extra_profile_fields');
add_action('personal_options_update','mysite_save_extra_profile_fields');
add_action('edit_user_profile_update','mysite_save_extra_profile_fields');
add_action('manage_users_custom_column','mysite_custom_columns',15,3);
add_filter('manage_users_columns','mysite_columns',1); 
?>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...