Merhabalar. Hazırlamakta olduğum bir eklentide fonksiyonların yer aldığı php dosyamda ajax çağrısı çalışmamakta. Yani fonksiyon kodlarını wordpress temanın functions.php dosyasına eklediğimde eklenti gayet verimli şekilde çalışıyor ancak takdir edersiniz ki herkes manuel girip temasının functions.php'ine ekleme yapamaz. Bu yüzden eklentinin kendi dosyalarında functions.php oluşturup buraya da ajax call yapmaya çalışıyorum ancak yanıt vermiyor ve console'dan baktığımda wp-admin/admin-ajax.php 400 döndürüyor. Kullandığım kodlar şöyle:

admin-index.php


wp_enqueue_style('db-clean-orbyx-admin-style',plugins_url('/css/style.css', __FILE__), false, 1, 'all');
wp_enqueue_script('db-clean-orbyx-admin-script',plugins_url('/js/plugin.js', __FILE__), false, 1, 'all');
?>






Aday 1

Aday 2

Aday 3






plugin.js


$('#p_button').click(function (e) {
$(document).ready(function () {
let form = $('#test');
$.ajax({
url: ajax_object.ajaxurl,
method: 'POST',
data: form.serialize() + '&action=test_action',
success: function (data) {
console.log(data);
}
});
});
});


eklentinin functions.php dosyası


function my_test() {
wp_enqueue_script( 'ajax-script', plugins_url('/js/plugin.js', __FILE__), array('jquery') );
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_test' );
add_action('wp_ajax_test_action' , 'test_action');
add_action('wp_ajax_nopriv_test_action' , 'test_action');
function test_action(){
if(isset($_POST["p-settings1"])) {
echo "

Aday 1'i Seçtiniz!

";}
else {
echo "

Başarısız!

";}
die();}
?>