Disclaimer: I\'m fully aware of the security issues created by this. This is not for production.
每当在WordPress中注册新用户或(重新)设置密码时,我都会尝试捕获该密码,对其进行加密,并将其保存到wp\\u usermeta表中。
我成功地加入了profile_update
完成此操作,但上述过程仅在配置文件页面中更改密码且不考虑新用户注册时有效。
add_action( \'profile_update\', \'save_encrypted_passwords_to_usermeta\' );
function save_encrypted_passwords_to_usermeta( $user_id ) {
if ( isset( $_POST[\'pass1\'] ) ) {
$password = $_POST[\'pass1\'];
update_user_meta( $user_id, \'password\', $password );
}
}
我已经查看了可插入功能
wp_set_password()
为了完成这一点,我们创建了这个muplugin,它似乎根本不起作用。
function wp_set_password( $password, $user_id ) {
global $wpdb;
$hash = wp_hash_password( $password );
$wpdb->update($wpdb->users, array(\'user_pass\' => $hash, \'user_activation_key\' => \'\'), array(\'ID\' => $user_id) );
update_user_meta( $user_id, \'password\', $password );
wp_cache_delete($user_id, \'users\');
}
我想
wp_set_password
总是在创建或设置密码时调用,所以我不确定为什么我的可插入函数重写根本不起作用。