wordppress注册页面添加输入密码进行注册的方法

本次我要和大家分享的内容是关于wordpress注册页面如何添加输入密码进行注册的事情。大家都知道使用wordpress网站程序搭建网站的时候,默认的注册功能是没有输入密码来进行注册的。只有填写邮箱后,从邮箱中获取默认密码,然后再到worpdress后台用户处修改密码的功能。这样对于大家来讲并不是很方便。wordppress注册页面添加输入密码进行注册的方法

因为,如果我在使用wordpress的时候,开启用户注册功能,但需要通过邮箱来才知道密码,再到后台去修改会显得比较麻烦,而且显得没有专业性。

因此,为了让用户注册的时候更方便一些,使用能输入密码来进行注册就显得比较重要了,

那么wordpress如何能让用户注册时在注册的时候输入密码来注册呢?接下来我就把方法告诉大家。

首先在你的wordpress主题“functions.php”文件的“<?php”空格之后放入如下代码:

if ( !function_exists(‘wp_new_user_notification’) ) :

function wp_new_user_notification($user_id, $plaintext_pass = ”, $flag=”) {

if(func_num_args() > 1 && $flag !== 1)

return;

$user = new WP_User($user_id);

$user_login = stripslashes($user->user_login);

$user_email = stripslashes($user->user_email);

// The blogname option is escaped with esc_html on the way into the database in sanitize_option

// we want to reverse this for the plain text arena of emails.

$blogname = wp_specialchars_decode(get_option(‘blogname’), ENT_QUOTES);

$message = sprintf(__(‘New user registration on your site %s:’), $blogname) . “\r\n\r\n”;

$message .= sprintf(__(‘Username: %s’), $user_login) . “\r\n\r\n”;

$message .= sprintf(__(‘E-mail: %s’), $user_email) . “\r\n”;

@wp_mail(get_option(‘admin_email’), sprintf(__(‘[%s] New User Registration’), $blogname), $message);

if ( empty($plaintext_pass) )

return;

$message = sprintf(__(‘Username: %s’), $user_login) . “\r\n”;

$message .= sprintf(__(‘Password: %s’), $plaintext_pass) . “\r\n”;

$message .= ‘登陆网址: ‘ . wp_login_url() . “\r\n”;

// sprintf(__(‘[%s] Your username and password’), $blogname) 为邮件标题

wp_mail($user_email, sprintf(__(‘[%s] Your username and password’), $blogname), $message);

}

endif;

function ludou_show_password_field() {

?>
<p>
<label>密码(至少6位)<br/>
<input id=”user_pwd1″ class=”input” type=”password” tabindex=”21″ size=”25″ value=”<?php echo $_POST[‘user_pass’]; ?>” name=”user_pass”/>
</label>
</p>
<p>
<label>重复密码<br/>
<input id=”user_pwd2″ class=”input” type=”password” tabindex=”22″ size=”25″ value=”<?php echo $_POST[‘user_pass2’]; ?>” name=”user_pass2″ />
</label>
</p>
<?php
}

function ludou_check_fields($login, $email, $errors) {

global $wpdb;

$last_reg = $wpdb->get_var(“SELECT `user_registered` FROM `$wpdb->users` ORDER BY `user_registered` DESC LIMIT 1”);

if ( (time() – strtotime($last_reg)) < 60 )

$errors->add(‘anti_spam’, “<strong>错误</strong>:先歇会,稍后再注册,谢谢您的理解”);

if(strlen($_POST[‘user_pass’]) < 6)

$errors->add(‘password_length’, “<strong>错误</strong>:密码长度至少6位”);

elseif($_POST[‘user_pass’] != $_POST[‘user_pass2’])

$errors->add(‘password_error’, “<strong>错误</strong>:两次输入的密码必须一致”);

}

function ludou_register_extra_fields($user_id, $password=””, $meta=array()) {

$userdata = array();

$userdata[‘ID’] = $user_id;

$userdata[‘user_pass’] = $_POST[‘user_pass’];

wp_new_user_notification( $user_id, $_POST[‘user_pass’], 1 );

wp_update_user($userdata);

}

function remove_default_password_nag() {

global $user_ID;

delete_user_setting(‘default_password_nag’, $user_ID);

update_user_option($user_ID, ‘default_password_nag’, false, true);

}

add_action(‘admin_init’, ‘remove_default_password_nag’);

add_action(‘register_form’,’ludou_show_password_field’);

add_action(‘register_post’,’ludou_check_fields’,10,3);

add_action(‘user_register’, ‘ludou_register_extra_fields’);

保存,然后再到前台刷新注册页面就可以看到效果了。当然你也可以保存为一个文件,然后再到“functions.php”调用该文件亦可。

注意:代码必须放在“functions.php”文件的第一个“<?php”之后才能正常使用。

除非著名,否者均为作者原创,未经允许禁止转载。

要发表评论,您必须先登录