web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. AIGC工具
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站
    手机应用

wordpress如何在网站上新增ajax注册登录功能

723 ℃

第一步,在header.phpfooter.php中引入如下代码:

<script type="text/javascript">
/* <![CDATA[ */
var ajax_sign_object = <?php echo ajax_sign_object(); ?>;
/* ]]> */
</script>

第二步,找到functions.php文件新增以下代码:

/* 获取当前页面url
/* ---------------- */
function tin_get_current_page_url(){
  $ssl = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? true:false;
  $sp = strtolower($_SERVER['SERVER_PROTOCOL']);
  $protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : '');
  $port  = $_SERVER['SERVER_PORT'];
  $port = ((!$ssl && $port=='80') || ($ssl && $port=='443')) ? '' : ':'.$port;
  $host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
  return $protocol . '://' . $host . $port . $_SERVER['REQUEST_URI'];
}
 
/* AJAX登录变量
/* -------------- */
function ajax_sign_object(){
  $object = array();
  $object[redirecturl] = tin_get_current_page_url();
  $object[ajaxurl] = admin_url( '/admin-ajax.php' );
  $object[loadingmessage] = '正在请求中,请稍等...';
  $object_json = json_encode($object);
  return $object_json;
}
 
/* AJAX登录验证
/* ------------- */
function tin_ajax_login(){
  $result  = array();
  if(isset($_POST['security']) && wp_verify_nonce( $_POST['security'], 'security_nonce' ) ){
  $creds = array();
  $creds['user_login'] = $_POST['username'];
  $creds['user_password'] = $_POST['password'];
  $creds['remember'] = ( isset( $_POST['remember'] ) ) ? $_POST['remember'] : false;
  $login = wp_signon($creds, false);
  if ( ! is_wp_error( $login ) ){
    $result['loggedin']  = 1;
  }else{
    $result['message']  = ( $login->errors ) ? strip_tags( $login->get_error_message() ) : 'ERROR: ' . esc_HTML__( '请输入正确用户名和密码以登录', 'tinection' );
  }
  }else{
  $result['message'] = __('安全认证失败,请重试!','tinection');
  }
  header( 'content-type: application/json; charset=utf-8' );
  echo json_encode( $result );
  exit;
 
}
add_action( 'wp_ajax_ajaxlogin', 'tin_ajax_login' );
add_action( 'wp_ajax_nopriv_ajaxlogin', 'tin_ajax_login' );
 
/* AJAX注册验证
/* ------------- */
function tin_ajax_register(){
  $result  = array();
  if(isset($_POST['security']) && wp_verify_nonce( $_POST['security'], 'user_security_nonce' ) ){
  $user_login = sanitize_user($_POST['username']);
  $user_pass = $_POST['password'];
  $user_email  = apply_filters( 'user_registration_email', $_POST['email'] );
  $errors  = new WP_Error();
  if( ! validate_username( $user_login ) ){
    $errors->add( 'invalid_username', __( '请输入一个有效用户名','tinection' ) );
  }elseif(username_exists( $user_login )){
    $errors->add( 'username_exists', __( '此用户名已被注册','tinection' ) );
  }elseif(email_exists( $user_email )){
    $errors->add( 'email_exists', __( '此邮箱已被注册','tinection' ) );
  }
  do_action( 'register_post', $user_login, $user_email, $errors );
  $errors = apply_filters( 'registration_errors', $errors, $user_login, $user_email );
  if ( $errors->get_error_code() ){
    $result['success']  = 0;
    $result['message']   = $errors->get_error_message();
 
  } else {
    $user_id = wp_create_user( $user_login, $user_pass, $user_email );
    if ( ! $user_id ) {
    $errors->add( 'registerfail', sprintf( __( '无法注册,请联系管理员','tinection' ), get_option( 'admin_email' ) ) );
    $result['success']  = 0;
    $result['message']   = $errors->get_error_message();  
    } else{
    update_user_option( $user_id, 'default_password_nag', true, true ); //Set up the Password change nag.
    wp_new_user_notification( $user_id, $user_pass );  
    $result['success']  = 1;
    $result['message']  = esc_html__( '注册成功','tinection' );
    //自动登录
    wp_set_current_user($user_id);
      wp_set_auth_cookie($user_id);
      $result['loggedin']  = 1;
    }
 
  }  
  }else{
  $result['message'] = __('安全认证失败,请重试!','tinection');
  }
  header( 'content-type: application/json; charset=utf-8' );
  echo json_encode( $result );
  exit;  
}
add_action( 'wp_ajax_ajaxregister', 'tin_ajax_register' );
add_action( 'wp_ajax_nopriv_ajaxregister', 'tin_ajax_register' );

最后在页面中做一个登录弹窗页面~

wordpress建站如何利用mysql语法批量插入文章

wordpress搭建视频网,视频加载慢怎么解决

wordpress如何实现版本回退

wordpress如何在文章标题上显示置顶标签

wordpress如何在二级目录建站(小编亲测有效)

标签: ajax注册登录 wordpress建站 wordpress注册功能 wordpress登录功能

上面是“wordpress如何在网站上新增ajax注册登录功能”的全面内容,想了解更多关于 wordpress 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_4390.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > wordpress
本文共计3420个字,预计阅读时长23分钟

基金从业资格考试题库

一站式备考基金从业资格考试,收录2021-2025年模拟题库!呱呱工具箱

AI工作站

收录全球3800+ 款各行各业AI应用,轻轻松松做事!

生活小工具

收录了万年历、老黄历、八字智能排盘等100+款小工具!生活小工具
上一篇: 推荐一款免费在线图片处理工具——佐糖图片平台
下一篇: 推荐一款优设网免费可商用字体——优设标题黑体
x 打工人ai神器