WordPress - внутренний вызов AJAX, возвращающий 0 - PullRequest
0 голосов
/ 07 июня 2019

Я создал бэкэнд-плагин для своего сайта и хотел бы, чтобы он работал с AJAX.Но все, что я получаю из ответа AJAX, это readyState: 4 и responseText: 0.

script.js

jQuery(document).ready(function($){
    $.ajax({
        url: ajaxurl,
        type: "POST",
        data: { 
            action: 'my_action', 
            param: 'st1' 
        },
        error : function(response){
            console.log(response);
        },
        success : function(response){
            console.log(response);
        }
    }); 
});

members_loop.php

add_action('wp_ajax_my_action', 'my_ajax_action_function');
add_action('wp_ajax_nopriv_my_action', 'my_ajax_action_function');

function my_ajax_action_function(){
    $reponse = array();

    if(!empty($_POST['param'])){
         $response['response'] = "I've get the param a its value is ".$_POST['param'].' and the plugin url is '.plugins_url();
    } else {
         $response['response'] = "You didn't send the param";
    }

    header( "Content-Type: application/json" );
    echo json_encode($response);

    wp_die();
}

Я использую три файла в своем плагине, чтобы сделать это, у меня есть файл plugin.php, где я объявляю свой плагин и ставлю в очередь свой файл script.js.Затем у меня есть файл шаблонов с двумя папками внутри, одна из которых members_loop.php, а другая index.php («домашняя страница» для плагина).Затем у меня есть файл ресурсов с моим файлом script.js.Не уверен, нужна ли эта информация, но я не думаю, что мой ajax-вызов неверен, поэтому мне интересно, что идет не так.

Обновление проблемы

Я простоВырежьте и вставьте функцию my_ajax_my_action и действия в файл plugin.php, где я объявляю плагин, и теперь он работает.Так как мне заставить его работать во внешнем файле?я должен требовать файл members_loop.php внутри файла plugin.php?

1 Ответ

1 голос
/ 07 июня 2019

Если ваш путь к файлу «/wp-content/plugins/your_plugin/members_loop.php», то внутри файла «plugin.php» добавьте require_once plugin_dir_path( __FILE__ ) . 'members_loop.php'; или require_once dirname(__FILE__) . '/members_loop.php';

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