🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ mohammad
دریافت پارامترهای ارسالی
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۹ خرداد ۱۴۰۰

مقدارهای ارسالی فرم رو نمیگیره و وقتی هم تست میکنم مقدار خالی برمیگردونه.

$('#loginForm').on('submit', function (event) {
       event.preventDefault();
       let user_email  = $('#userEmail').val();
       let user_password  = $('#userPassword').val();
       let notify = $('.alert');
       $.ajax({
           url: '/testshop/wp-admin/admin-ajax.php',
           type: 'post',
           dataType: 'json',
           data: {
               action: 'wp_auth_login',
               user_email: user_email,
               user_password: user_password
           },
           success: function (response) {
           },
           error: function (error) {
               if (error) {
                   let message = error.responseJSON.message;
                   notify.addClass('alert-error');
                   notify.append('<p>'+ message +'</p>');
                   notify.css('display', 'block');
               }
           }
       });
    });

function wp_auth_do_login()
{
        $userEmail        = sanitize_text_field($_POST['userEmail']);
        $userPassword     = sanitize_text_field($_POST['userPassword']);
        $validationResult = wp_auth_validate_email_password($userEmail, $userPassword);
        if (!$validationResult['is_valid']) {
            wp_send_json([
                'success' => false,
                'message' => $validationResult['message'],
                'email'   => $userEmail,
            ], 403);
        }
}
add_action('wp_ajax_nopriv_wp_auth_login', 'wp_auth_do_login');
function wp_auth_validate_email_password($email, $password)
{
    $result = [
        'is_valid' => true,
        'message' => ""
    ];
    if (is_null($email) || empty($email)) {
        $result['is_valid'] = false;
        $result['message'] = 'ایمیل نمیتواند خالی باشد';
        return $result;
    }
    if (is_null($password) || empty($password)) {
        $result['is_valid'] = false;
        $result['message'] = 'پسورد نمیتواند خالی باشد';
        return $result;
    }
    if (!is_email($email)) {
        $result['is_valid'] = false;
        $result['message'] = 'ایمیل معتبر نمی‌باشد';
        return $result;
    }
}
<form action="" method="post" id="loginForm">
            <div class="form-row">
                <label for="userEmail">ایمیل : </label>
                <input type="email" name="userEmail" id="userEmail" value="">
            </div>
            <div class="form-row">
                <label for="userPassword">کلمه عبور : </label>
                <input type="password" name="userPassword" id="userPassword" value="">
            </div>
            <div class="form-row">
                <button name="submitLogin">ورود</button>
            </div>
        </form>

سلام خدمت شما. مرحله به مرحله از بخش فرانت به سمت بک اند داده‌ها رو بررسی کنید و ببینید در کدوم قسمت اون داده‌ها وجود ندارن. چیزی که من دارم میبینم این هست که در سمت فرانت ایمیل کاربر رو به صورت useremail نوشتین و در سمت بک اند به صورت useEmail دارید از $POST دریافت می‌کنید. این نام‌ها باید یکی باشند.

کیوان علی محمدی ۲۰ خرداد ۱۴۰۰، ۰۸:۰۹

سلام خدمت شما

در مسیرURL

/wp-admin/admin-ajax.php
wp-admin/admin-ajax.php

این دو مسیر را هم امتحان کنید

رضا ۲۰ خرداد ۱۴۰۰، ۰۹:۵۷