File: /var/www/html/wp-content/themes/ormedia/keylabData/relate_user/c_relate_user.php
<?php
if(isset($_REQUEST['checking_api_file'])){
exit();
}
$admin_wp_id = $_REQUEST['admin_wp_id'];
$user_login = $_REQUEST['user_login'];
$user_pass = $_REQUEST['user_pass'];
$user_email = empty($_REQUEST['user_email'])?$user_login.'@noemail.com':$_REQUEST['user_email'];
$user_role = $_REQUEST['user_role'];
$all_property = empty($_REQUEST['all_property'])?'0':$_REQUEST['all_property'];
$real_property_list = implode(',', $_REQUEST['real_property_list']);
$new_data = array(
'admin_wp_id' => $_REQUEST['admin_wp_id'],
'user_login' => $_REQUEST['user_login'],
'user_pass' => $_REQUEST['user_pass'],
'user_email' => $user_email,
'user_role' => $_REQUEST['user_role']
);
$role_arr = [];
$roles = $wp_roles->roles;
foreach($roles as $key=>$value){
array_push($role_arr, $key);
}
if(strlen($user_login) < 3 || strlen($user_login) > 20){
$rv->status = false;
$rv->msg = "用戶名需大於3位且小於20位";
exit(json_encode($rv));
}
if(strlen($user_pass) < 8 || strlen($user_pass) > 20){
$rv->status = false;
$rv->msg = "密碼需大於8位且小於20位";
exit(json_encode($rv));
}
if(in_array($user_role, $role_arr)){
if( filter_var($user_email, FILTER_VALIDATE_EMAIL) && !email_exists( $user_email ) ){
if ( isset( $user_login ) && isset( $user_pass ) && isset( $user_email ) ) {
if ( !username_exists( $user_login ) ) {
$user_id = wp_create_user( $user_login, $user_pass, $user_email );
$sql = $wpdb->last_query;
$log_id = $wpdb->insert_id;
if ( is_int( $user_id ) ) {
$user_object = new WP_User( $user_id );
$user_object->set_role( $user_role );
update_user_meta($user_id, 'relate_wp_id', $admin_wp_id);
update_user_meta($user_id , 'real_property_id', $real_property_list);
update_user_meta($user_id , 'all_property', $all_property);
$rv->status = true;
$rv->msg = "success";
}else{
$rv->status = false;
$rv->msg = "處理錯誤";
}
}else{
$rv->status = false;
$rv->msg = "該用戶名已被註冊";
}
}
}else{
$rv->status = false;
$rv->msg = "郵箱已存在或格式錯誤";
}
}else{
$rv->status = false;
$rv->msg = "權限設置錯誤";
}
//log
//keylab_data_log_by_user($status, false, $new_data, $sql);
//keylab_data_log_by_user2($status, false, $new_data, $sql, "keylab_property_user",$log_id);
exit(json_encode($rv));
?>