【发布时间】:2019-12-06 06:16:09
【问题描述】:
我正在尝试从我的数据库中的wp_users 表中获取加密的user_pass 数据,以在管理员的“编辑用户”页面中显示为自定义的可编辑和可更新字段(如电子邮件字段)只有一边。我想出了以下代码:
if ( is_admin() ) {
add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );
function extra_user_profile_fields( $user ) { ?>
<h3>Additional Account Information</h3>
<table class="form-table">
<tbody>
<tr>
<th style="width:20.5%!important;">Existing Password (Encrypted)</th>
<td>
<input type="text" name="user_pass" id="user_pass" value="<?php echo esc_attr($user->user_pass) ?>" class="regular-text" />
</td>
</tr>
</tbody>
</table>
<?php }
add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }
$user_id = wp_update_user( array( 'ID' => $user_id, 'user_pass' => $_POST[ 'user_pass' ] ) );
}
}
更新:
上面的代码正在运行,但是当它更新时,它正在重新加密我正在复制和粘贴的已经加密的密码。从而使加密密码成为密码本身!我只是希望它以我粘贴的确切方式保存。这可能吗?
我想要这些数据,因此我可以将其从一个用户区域复制并粘贴到我的站点内的另一个用户区域,因为他们不共享数据库,但是有些用户需要在多个数据库中使用相同的信息,包括密码。我希望能够直接从 Wordpress 管理区域而不是在 phpMyAdmin 中执行此操作。
【问题讨论】: