下面是一种将操作添加到profile_update
钩该钩子传递两个参数:$user_id
和$old_user_data
. 我们可以使用这些来查看用户是否处于tempUser角色。如果是,则将旧用户密码与新用户密码进行比较。如果密码不同,则更新用户角色。
//* Add action to hook which fires after a user updates their profile
add_action( \'profile_update\', \'wpse_263873_profile_update\', 10, 2 );
function wpse_263873_profile_update( $user_id, $old_user_data ) {
//* Get the user and escape early if they have the tempUser role
$user = get_user_by( \'id\', $user_id );
if( ! in_array( \'tempUser\', $user->roles ) ) {
return;
}
//* If the old user_pass isn\'t exactly equal to the new user_pass
if( $old_user_data->user_pass !== $user->user_pass ) {
//* Update the role
wp_update_user( [
\'ID\' => $user_id,
\'role\' => \'subscriber\',
] );
}
}