我有两个脚本一起工作,我需要保持用户信息同步。我对用户名没有问题,但对于密码,我尝试了2个钩子,'password_reset'和'check_passwords',但没有完成:
add_action( 'password_reset', 'change_password_in_other_script', 10, 2 );
add_action( 'check_passwords', 'change_password_in_other_script', 10, 2 );
function change_password_in_other_script( $user, $new_pass ) {
// OTHER DB CREDENTIALS
global $addShareDB;
// INITIALIZE OTHER DB CONNECTION
$mydb = new wpdb( $addShareDB['dbuser'], $addShareDB['dbpass'], $addShareDB['dbname'], $addShareDB['dbhost'] );
$current_user = wp_get_current_user();
$current_username = $current_user->user_login;
$table = 'enk_account_users';
$new_password = md5( $_POST[ 'pwd' ] );
$query = "UPDATE " . $table . " SET password = '" . $new_password . "' WHERE username = '" . $current_username . "'";
$mydb->get_results( $query );
}
我可以使用其他钩子吗?
我要做的是能够处理新创建的纯文本密码后,它被插入到密码重置或更改后的wordpress数据库。所以我也可以将它更新到另一个框架的数据库中或者甚至可以将它发布到另一个框架的脚本中。
谢谢
是,您可以使用profile_update钩子来更新密码。
在你的theme functions.php文件中放入profile updates钩子。
您可以查看下面的代码以获取更多参考。
function my_profile_update( $user_id )
{
if ( ! isset( $_POST['pass1'] ) || '' == $_POST['pass1'] )
{
return;
}
elseif(!$_POST['pass1'] === $_POST['pass2']){
return;
}
else
{
//call your API to update password in your framework
}
}
add_action( 'profile_update', 'my_profile_update' );