wordpress前台会员注册功能表单调用

博客吧目前在制作一个会员型的wordpress淘宝客主题,目前现在的带会员功能的wordpress淘客模板的会员注册、会员登陆功能都在前台,既然大家都在前台实现了注册登陆的功能,博客吧总不会还让访客绕几十圈到后台注册登陆吧!?本着能拿则拿来主义,先是百度搜索是否有实现wordpess前台注册功能的代码公布,最终得到露兜博客(好博客,多多学习)的相关代码。

实现前台注册操作步骤:

  • 复制当前主题目录下的page.php文件并命名为register.php,在第一行<?php后添加:
    1
    2
    3
    
    /*
    Template Name:会员注册
    */

    如果有其它注释,先删除

  • 紧接着在*/后添加以下函数代码:
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
    if( !empty($_POST['reg']) ) {  $error = '';  $sanitized_user_login = sanitize_user( $_POST['user_login'] );  $user_email = apply_filters( 'user_registration_email', $_POST['user_email'] );   // Check the username  if ( $sanitized_user_login == '' ) {    $error .= '<strong>错误</strong>:请输入用户名。<br />';  } elseif ( ! validate_username( $user_login ) ) {    $error .= '<strong>错误</strong>:此用户名包含无效字符,请输入有效的用户名<br />。';    $sanitized_user_login = '';  } elseif ( username_exists( $sanitized_user_login ) ) {    $error .= '<strong>错误</strong>:该用户名已被注册,请再选择一个。<br />';  }   // Check the e-mail address  if ( $user_email == '' ) {    $error .= '<strong>错误</strong>:请填写电子邮件地址。<br />';  } elseif ( ! is_email( $user_email ) ) {    $error .= '<strong>错误</strong>:电子邮件地址不正确。!<br />';    $user_email = '';  } elseif ( email_exists( $user_email ) ) {    $error .= '<strong>错误</strong>:该电子邮件地址已经被注册,请换一个。<br />';  }   // Check the password  if(strlen($_POST['user_pass']) < 6)    $error .= '<strong>错误</strong>:密码长度至少6位!<br />';  elseif($_POST['user_pass'] != $_POST['user_pass2'])    $error .= '<strong>错误</strong>:两次输入的密码必须一致!<br />';     if($error == '') {    $user_id = wp_create_user( $sanitized_user_login, $_POST['user_pass'], $user_email );     if ( ! $user_id ) {      $error .= sprintf( '<strong>错误</strong>:无法完成您的注册请求... 请联系<a href=/"mailto:%s/">管理员</a>!<br />', get_option( 'admin_email' ) );    }    else if (!is_user_logged_in()) {      $user = get_userdatabylogin($sanitized_user_login);      $user_id = $user->ID;       // 自动登录      wp_set_current_user($user_id, $user_login);      wp_set_auth_cookie($user_id);      do_action('wp_login', $user_login);    }  }}
  • 在register.php文件中找到<?php the_content();?>,在其下面添加以下代码:
    12345678910111213141516171819202122232425262728293031323334
    <?php 	if(!empty($error)) {		echo '<p class="error">'.$error.'</p>';	}	if (!is_user_logged_in()) { ?>		<form name="registerform" method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>" class="register">		<p>			<label for="user_login">用户名:</label>			<input type="text" name="user_login" id="user_login" class="input" value="<?php if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>" size="20" /><em>只允许用英文字母、数字和下划线</em>		</p> 		<p>			<label for="user_email">电子邮件:</label>			<input type="text" name="user_email" id="user_email" class="input" value="<?php if(!empty($user_email)) echo $user_email; ?>" size="25" /><em>请输入正确的邮箱地址,接收激活邮件</em>		</p> 		<p>			<label for="user_pwd1">密码:</label>			<input id="user_pwd1" class="input" type="password" tabindex="21" size="25" value="" name="user_pass" /><em>(至少6位)</em>		</p> 		<p>			<label for="user_pwd2">重复密码:</label>			<input id="user_pwd2" class="input" type="password" tabindex="21" size="25" value="" name="user_pass2" />			</p> 		<p class="submit">			<input type="hidden" name="reg" value="ok" />			<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="注册" />		</p>		</form>	<?php } else {		echo '<p class="error">您已注册成功,并已登录!</p>';} ?>
  • 进入后台——页面——新建页面,标题自定义,在右侧选择模板“前台注册”,发布页面即可。为了方便注册用户以后登陆,可以再添加前台登陆表单,实现方法请看
    https://www.boke8.net/wordpress-login-form-of-front.html

提醒:以上代码的添加,会员注册成功后会自动登陆,如果不想用户自动登陆,可找到以下代码:

1
2
3
4
5
6
7
$user = get_userdatabylogin($sanitized_user_login);
$user_id = $user->ID;
 
// 自动登录
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action('wp_login', $user_login);

替换为:(URL改为自己的)

1
wp_safe_redirect( 'https://www.boke8.net/' );

提示:然后可以使用CSS对注册表单进行美化,博客吧不提供CSS样式美化代码,可自主设计。

代码摘自:露兜博客

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/247838.html

(0)
上一篇 2022年4月22日 01:34
下一篇 2022年4月22日 01:35

相关推荐

发表回复

登录后才能评论