Ошибка 500 при передаче переменных в функцию - PullRequest
0 голосов
/ 12 марта 2020

У меня есть функция ниже в моем файле функций WordPress, и если я запускаю ее, как показано ниже, без двух параметров, она работает нормально, но когда я передаю параметры, обработчик ошибок в jQuery возвращает статус 500.

Если я не передаю параметры в функцию PHP, я получаю статус 200 от jQuery, но он поступает из обработчика ошибок, а не из обработчика успеха. Почему так?

function subscribe_funk(){//$payment_method, $customer_handle){
    return "This is a test";
    die();
}

Это вызывается из этого ajax:

function subscribe(data) {
    jQuery.ajax({
        url: PT_Ajax.ajaxurl,
            type: "POST",
            data: {'action': 'subscribe_funk', 'payment_method': data.payment_method, 'customer_handle': data.customer},
            cache: false,
            dataType: 'json',
            beforeSend: function(){
                console.log('Before send subscribe');
            },
            complete: function(){
            },
            success: function (response) { 
                console.log('Message from success handler: ');
                console.log(response);
            },
            error: function(xhr, status, error){
                console.log("Message from error handler:")
                var errorMessage = xhr.status + ': ' + xhr.statusText
                console.log(errorMessage);
            }
        });
}

1 Ответ

0 голосов
/ 12 марта 2020

Ваша функция ожидает 2 параметра, однако WP / ajax не передает их напрямую. Вам нужно извлечь их из массива $ _POST самостоятельно:

function subscribe_funk(){
    $payment_method = $_POST['payment_method'];
    $customer_handle = $_POST['customer_handle'];
    return "This is a test";
    die();
}

Также вы можете очистить данные поста с помощью sanitize_text_field() или аналогичной функции.

Вот соответствующий поток в WP StackExchange: как передать параметры из jQuery ajax в PHP функцию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...