如何确定用户是否未更改默认生成的密码

时间:2011-08-19 作者:Zach Shallbetter

我想建议用户,他们应该更改通过电子邮件发送给他们的默认密码。

是否有一个函数或挂钩可以告诉我用户是否正在运行默认密码?

2 个回复
SO网友:Chris Carson

以下内容将告诉您,用户是否在注册ID为的用户时更新了WP生成的密码$user_id:

if ( ! get_user_option(\'default_password_nag\', $user_id) ) {
    //then the user has changed the default password
} else {
    //the default password has not been changed
}
如果您想发送电子邮件@goldenapples,答案很好(替换中的逻辑user_password_check 用于检查密码是否已使用我的逻辑更改。)

SO网友:goldenapples

问题是,如何设置默认密码?

也就是说,我认为从创建用户的日期算起的一周内触发一个预定的操作是完全合理的。这应该很简单,像这样的事情可能会奏效:

add_action( \'user_register\', \'check_in_a_week\' );

function check_in_a_week( $user_id ) {
    $user = get_user_by( \'id\', $user_id );
    wp_schedule_single_event( \'user_password_check\', 7*24*60*60, 
        array( \'user_id\' => $user_id, \'user_pass\' => $user->user_pass ) );
}

function user_password_check( $args ) {
    extract( $args );
    $user = get_user_by( \'id\', $user_id );
    if ( $user->user_pass == $user_pass ) {

        // send them mail...
    }
}
(我还没有测试它,所以我不确定它是否经得起实际使用。请将它视为您尝试执行的操作的伪代码。)

结束

相关推荐

Display last login time

我使用此脚本获取用户上次登录的时间function get_last_login($user_id) { $last_login = get_user_meta($user_id, \'last_login\', true); echo human_time_diff($last_login) . \" \" . __(\'ago\'); } 我把它叫做作者。php与<p>Last login: <?php get_last_lo