Internet

WordPress注册页面增加密码输入

sumi856 · 1月8日 · 2017年

纯源码,并非插件。因为有的时候虚拟机不支持邮件发送,所以想弄一个这个,这样可以避免很多问题,我们接下来开始讲解怎么操作。

操作步骤

在网站根目录找到wp-login.php文件,用notepad++打开,直接拉到730行处,就可以看到我们要修改的代码了。

<p>
 <label for="user_login"><?php _e('Username') ?><br />
 <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="25" /></label>
</p>
<p>
 <label for="user_email"><?php _e('Email') ?><br />
 <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" /></label>
</p>

我们现在在后面添加密码框,代码如下

<p>
 <label for="password"><?php _e( '密码', 'ugp-domain' );?><br/>
 <input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" placeholder="输入8位密码" /></label>
</p>
<p>
 <label for="repeat_password"><?php _e( '确认密码', 'ugp-domain' );?><br/>
 <input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password"placeholder="再次输入密码"  /></label>
</p>

添加完了之后保存到wp-login.php,我们来看一下效果图

170108-login

主题修改

我们这里已经修改完了,接下来修改主题文件里面的主要文件functions.php,然后拉到最下面,放在 ?> 这个符号的前面即可。代码如下:

//自定义注册页面
add_action( 'register_post', 'ts_check_extra_register_fields', 10, 3 );
function ts_check_extra_register_fields($login, $email, $errors) {
if ( $_POST['password'] !== $_POST['repeat_password'] ) {
$errors->add( 'passwords_not_matched', "<strong>提示</strong>: 两次输入的密码不一致,请重新输入。" );
}
if ( strlen( $_POST['password'] ) < 8 ) {
$errors->add( 'password_too_short', "<strong>提示</strong>: 密码最少要输入8位,请重新输入密码。" );
}
}
add_action( 'user_register', 'ts_register_extra_fields', 100 );
function ts_register_extra_fields( $user_id ){
$userdata = array();

$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
}
$new_user_id = wp_update_user( $userdata );
}
add_filter( 'gettext', 'ts_edit_password_email_text' );
function ts_edit_password_email_text ( $text ) {
if ( $text == 'A password will be e-mailed to you.' ) {
$text = 'If you leave password fields empty one will be generated for you. Password must be at least eight characters long.';
}
return $text;
}

 

转自:http://www.buyworkt.com/wp/plugins/396.html

1 条回应
  1. ysbreh2017-6-4 · 12:19

    注册后会发一个“密码已修改”的邮件,求问这个怎么避免?