我正在使用woocommerce,客户必须登录或创建一个帐户才能购买。当他们创建帐户时,我需要获取密码以将密码发送到我的Web服务并为我的其他数据库创建新用户。
此数据库用于我的Web应用程序,我必须使用phalcon hash method加密密码,但我不能这样做,因为wordpress密码已经过哈希。
我该怎么办呢?
答案 0 :(得分:1)
有一种方法可以做到这一点。每当用户登录时,您都可以访问用户的普通密码,但当然无法以递归方式获得所有密码。我不认为这会产生任何问题,因为功能将对记录的用户不间断地起作用。
您需要创建一个名为hook的wp_authenticate_user:
add_filter('wp_authenticate_user', 'myplugin_auth_login',10,2);
// Where $priority is 10, $accepted_args is 2.
function myplugin_auth_login ($user, $password) {
$user_id = $user->ID;
// check if passsword is already converted
$phalcon_hash = get_user_meta( $user_id, 'phalcon_hash' );
if($phalcon_hash == false) {
// convert your password with
$phalcon_password = use_your_phalcon_hash_method($password);
// connect your other db and save pass
send_your_user_info_to_other_db($user_id, $phalcon_password);
// set user meta as converted
add_user_meta( $user_id, 'phalcon_hash', true);
}
}