Ваш код кажется правильным, но я делюсь своим личным подходом к этому в надежде, что это может быть полезно.Внесите изменения в JS, как упомянуто ниже:
jQuery( document ).ready( function ($) {
$('#ajaxButton').click(function() {
var dataFromFunction="Test Data";
$.ajax({
url: my_ajax_object.ajaxurl,
type: 'POST',
data: {
action: 'save_sort',
order: dataFromFunction
},
}).done( function (response){
console.log("success message");
console.log(response.custom)
}).fail(function (response){
console.log("error message");
}).always(function(){
console.log('Ajax Completed');
});
});
});
Также для локализации вашего скрипта хорошо определить параметр схемы в функции admin_url
, но это не обязательно, поэтому 'ajax_url' => admin_url( 'admin-ajax.php')
должно быть просто отлично.
Вы, кажется, создали nonce, но не использовали его, и хорошей практикой будет использование функции create nonce в разделе формы, а не в локализации.
У меня есть предложение для вашего ajaxФункция ответа, но это всего лишь совет.Измените свою функцию так, чтобы она возвращалась следующим образом:
function ajaxFunctionInPHP(){
$response['dataFromFunction'] = sanitize_text_field($_POST['dataFromFunction']);
wp_send_json( $response);
}
Удачи !!