سلام
استاد کد ها رو دقیقا مثل کد های شما نوشتم ولی یه ارور میگیرم نمیدونم چیکار کنم
کد های ثبت نام ajax.php
function LE_Do_Register(){
$user_email=sanitize_text_field($_POST['user_email']);
$user_pass=sanitize_text_field($_POST['user_pass']);
$firstname=sanitize_text_field($_POST['firstname']);
$lastname=sanitize_text_field($_POST['lastname']);
$is_validate=LE_Register_Validate($user_email,$user_pass,$firstname,$lastname);
if(!$is_validate['IS_Validate']){
wp_send_json([
'success'=>false,
'message'=>$is_validate['message'],
'error'=>$is_validate['error']
],422);
}
if($is_validate['IS_Validate']){
$user_login=explode('@',$user_email);
$newuser=wp_insert_user([
'user_login'=>apply_filters('pre_user_login',$user_login[0].rand(1000,9999)),
'user_pass'=>apply_filters('pre_user_pass',$user_pass),
'user_email'=>apply_filters('pre_user_email',$user_email),
'display_name'=>apply_filters('pre_user_display_name',"{$firstname} {$lastname}"),
'first_name'=>apply_filters('pre_user_first_name',$firstname),
'last_name'=>apply_filters('pre_user_last_name',$lastname)
]);
if(is_wp_error($newuser)){
wp_send_json([
'success'=>false,
'message'=>'در عملیات ثبت نام خطایی رخ داده است',
'error'=>'error_register'
],500);
}
wp_send_json([
'success'=>true,
'message'=>'ثبت نام شما با موفقیت انجام شد'
],200);
}
}
function LE_Register_Validate($email,$password,$firstname,$lastname){
$result=[
'message'=>'',
'Is_Validate'=>true,
'error'=>''
];
if(empty($email)|| is_null($email)){
$result['message']='کادر ایمیل نباید خالی باشد';
$result['Is_Validate']=false;
$result['error']='email_empty';
return $result;
}
if(!is_email($email)){
$result['message']='آدرس ایمیل معتبر نمیباشد';
$result['Is_Validate']=false;
$result['error']='email_error';
return $result;
}
if(empty($firstname)|| is_null($firstname)){
$result['message']='کادر نام نباید خالی باشد';
$result['Is_Validate']=false;
$result['error']='firstname_empty';
return $result;
}
if(empty($lastname)|| is_null($lastname)){
$result['message']='کادر نام خانوادگی نباید خالی باشد';
$result['Is_Validate']=false;
$result['error']='lastname_empty';
return $result;
}
if(empty($password)|| is_null($password)){
$result['message']='کادر پسوورد نباید خالی باشد';
$result['Is_Validate']=false;
$result['error']='password_empty';
return $result;
}
if(email_exists($email)){
$result['message']='ایمیل تکراری میباشد';
$result['Is_Validate']=false;
$result['error']='Repetitious_email';
return $result;
}
return $result;
}
add_action('wp_ajax_nopriv_le-register-ajax','LE_Do_Register');
کد های auth.js
$('#registerform').on('submit', function(event) {
event.preventDefault();
let user_email = $('#user_email').val();
let user_pass = $('#user_pass').val();
let firstname = $('#firstname').val();
let lastname = $('#lastname').val();
let notify = $('.alert');
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'post',
datatype: 'json',
data: {
action: 'le-register-ajax',
user_email: user_email,
user_pass: user_pass,
firstname: firstname,
lastname: lastname
},
success: function(response) {
console.log(response);
if (response.success) {
notify.addClass('alert-success');
notify.css('display', 'block');
notify.append('<p>' + response.message + '</p>')
notify.delay(1000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-success');
window.location.href = 'wordpress.exp/login';
}, 1000);
}
},
error: function(error) {
console.log(error);
if (error) {
if (error.responseJSON.error == 'email_empty') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
if (error.responseJSON.error == 'password_empty') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
if (error.responseJSON.error == 'email_error') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
if (error.responseJSON.error == 'firstname_empty') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
if (error.responseJSON.error == 'lastname_empty') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
if (error.responseJSON.error == 'Repetitious_email') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
if (error.responseJSON.error == 'error_register') {
notify.addClass('alert-error');
notify.css('display', 'block');
notify.append('<p>' + error.responseJSON.message + '</p>')
notify.delay(2000).hide(200);
setTimeout(function() {
notify.empty();
notify.removeClass('alert-error');
}, 2000);
}
}
}
})
})
سلام. این رو در حالتی تست می کنید که خودتون لاگین هستید؟ در یک private window مرورگر تست کنید ببینید چه خطایی نشون میده.
توی کدهاتون خطای 422 رو خودتون صادر می کنید. کدهاتون رو بررسی کنید