用WordPress开发注册接口

在前面一小节中我们开发了注册页面,在本小节中我将带领大家用WordPress开发一个注册接口。

本教程为《用WordPress与uni-app开发,包含所有源代码》系列教程之一。

全功能WordPress API接口工具已出

全功能WordPress API接口工具已出只为前端开发者的你设计,详情查看:Sliver Rest Wp api:全功能的WordPress api工具

前言

在前面一小节中我们开发了注册页面,在本小节中我将带领大家用WordPress开发一个注册接口。

视频

开始

创建文件

在自制的api文件夹下面创建reg.php文件,如下:

写入代码如下

<?php
//引入WP加载文件,引入之后就可以使用WP的所有函数 
require( '../../../../wp-load.php' );
//允许跨域
header('Access-Control-Allow-Origin:*'); 
header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); 
header('Access-Control-Allow-Credentials: true'); 
header('Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin'); 
/**
 * 接收数据
 * @var [type]
 */
$user_name = $_POST['user_name'];
$user_pwd = $_POST['user_pwd'];
$user_email = $_POST['user_email'];
//定义返回数组,默认先为空
$data=[];
if($user_name=''&&$user_pwd==''&&$user_email=''){
	$data['code'] = 404;
	$data['msg'] = '请完善注册表单!';
	print_r(json_decode($data));
	exit();
}
// 判断用户是否存在
if(username_exists($user_name)){
	$data['code'] = 404;
	$data['msg'] = '当前用户名已经存在!';
	print_r(json_decode($data));
	exit();
}
/**
 * 检测邮箱是否正确
 */

if(!is_email($user_email)){
	$data['code']  = 404;
	$data['msg']   ='邮箱格式不正确!';
	print_r(json_encode($data));
	exit();
}

// 判断邮箱是否存在
if(email_exists($user_email)){
	$data['code'] = 404;
	$data['msg'] = '当前邮箱已经存在!';
	print_r(json_encode($data));
	exit();
}
//定义用户数据
$userdata = array(
	'user_pass'=>$user_pwd,
	'user_login'=>$user_name,
	'user_nicename'=>$user_name,
	'user_email'=>$user_email,
	'display_name'=>$user_name,
);
//使用wp函数插入用户:插入成功返回用户id,失败 返回WP_Error 
$is_Err = wp_insert_user($userdata);
if(is_wp_error($is_Err)){
	$data['code'] = 404;
	$data['msg']  = '注册失败,请稍后再试';
	print_r(json_encode($data));
	exit();
}
$data['code'] = 200;
$data['msg']  = '欢迎你,注册成功';
print_r(json_encode($data));
exit();

允许中文用户名注册

WordPress默认是不允许中文用户名注册的,所以这里我们需要在functions.php中添加允许中文用户名注册的代码,如下:


//允许中文名
function allowed_chinese_name ($username, $raw_username, $strict) {
  $username = wp_strip_all_tags( $raw_username );
  $username = remove_accents( $username );
  $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
  $username = preg_replace( '/&.+?;/', '', $username ); 
  if ($strict) {
    $username = preg_replace ('|[^a-zp{Han}0-9 _.-@]|iu', '', $username);
  }
  $username = trim( $username );
  $username = preg_replace( '|s+|', ' ', $username );
  return $username;
}
add_filter ('sanitize_user', 'allowed_chinese_name', 10, 3);
function jinsom_update_user_login($user_id,$user_login){
global $wpdb;
if($wpdb->query( "UPDATE $wpdb->users SET user_login = '$user_login' WHERE ID=$user_id;" ))
return 1;
return 0;
}

结束

至此,注册接口就开发完成了,需要注意的是这里的接口因为没有实际测试过,也许会有什么问题,后期在uni-app中实现注册功能中的时候会完善。

[post id=18]

代码仓库:https://github.com/sliverRing/wpApp

给TA打赏
共{{data.count}}人
人已打赏
WordPress开发

uni-app开发注册页面

2019-6-21 12:29:13

WordPress开发

wordpress自定义文章类型

2019-7-16 17:02:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索