Я создал бэкэнд-плагин для своего сайта и хотел бы, чтобы он работал с 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?