我有两个脚本一起工作, 我需要保持用户信息同步。我的用户名没有问题, 但是对于密码, 我尝试了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数据库中后立即对其进行处理。因此, 我也可以将其更新到另一个框架的数据库中, 甚至可以将其发布到另一个框架中的脚本中。
谢谢
#1是的, 你可以使用profile_update挂钩来更新密码。
在你的主题functions.php文件中, 放入配置文件更新挂钩。
【在WordPress中更改/重置密码后,将新密码发送到新数据库】你可以检查以下代码以获取更多参考。
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' );
推荐阅读
- 短代码不适用于自定义WordPress主题
- 马来西亚服务器怎么样东南亚国家哪里的服务器比较好
- Linux之cd命令
- QT5中如何使用SQLite
- CENTOS使用RINETD转发域名端口
- #yyds干货盘点#Ubuntu网络配置和故障排错工具详解
- Jenkins配置webhook钩子触发构建
- #yyds干货盘点#Linux的磁盘分区物理设备和文件系统一
- 走在路上的成长之路