دریافت پارامترهای ارسالی

پرسیده شده
فعالیت 1058 روز پیش
دیده شده 338 بار
0

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

$('#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>
فایل پیوست

mohammad
mohammad

19 خرداد 00

0
حذف شده

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

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

20 خرداد 00

حذف شده
در هر دو بخش به صورت userEmail نام گذاری شدن. اسم ها رو کپی کردم تا این خطا پیش نیاد ولی باز هم مقدار $_POST ایمیل خالی نمایش داده میشه
mohammad

20 خرداد 00

0
حذف شده

سلام خدمت شما

در مسیرURL

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

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

فایل پیوست

رضا بیرجندی(محب)

توسط

رضا بیرجندی(محب)

20 خرداد 00