2016-11-06 5 views
1

Я новичок в коде и стараюсь учиться, выполняя их.Запрос wp_admin ajax возвращается с ответом «0»

В настоящее время я пытаюсь сделать что-то очень простое с помощью wordpress. который я пытаюсь создать некоторые должности в Wordpress, используя некоторые внешние данные.

Я могу получить данные с помощью CURL. Нет проблем с этим и публиковать его с помощью Wp_insert_post, напрямую.

Но, что я хочу сделать, это вызвать функцию wp_insert_post при нажатии кнопки на панели администратора (я создал это как плагин и отдельную панель инструментов плагина, в которую встроена кнопка). Я возился с кодом, и отправка данных в wp-admin-ajax.php работает нормально и дает код ответа 200. Но получение ответа «0». если пройденные данные верны, я полагаю, ответ должен быть «1»?

У меня есть следующий код на данный момент.

//Button

<form id="formtesting"> 
<input type="text" id="name" placeholder="Name"> 
<input type="submit" id="user-submit" value="user-submit"> 

//Ajax Call 

$(document).ready(function() { 
 
    var userSubmitButton = document.getElementById('user-submit'); 
 

 
    var adminAjaxRequest = function(formData, myaction) { 
 
    $.ajax({ 
 
     type: 'POST', 
 
     dataType: 'json', 
 
     url: '/wpdevelopment/wp-admin/admin-ajax.php', 
 
     data: { 
 
     action: myaction, 
 
     data: formData 
 
     }, 
 
     success: function(response) { 
 
     if (true === response.success) { 
 
      alert('success'); 
 
     } else { 
 
      alert(response); 
 
     } 
 
     } 
 
    }); 
 
    }; 
 

 
    userSubmitButton.addEventListener('click', function(event) { 
 
    event.preventDefault(); 
 
    var formData = { 
 
     'name': document.getElementById('name').value 
 

 
    }; 
 
    adminAjaxRequest(formData, 'data_submission'); 
 
    }); 
 
});

А вот мой тест функция // проверить, является ли инициировать функцию должным образом, я пытаюсь отправить JSon ошибка, поэтому я могу включить wp_i Сведения о nsert_post.

function data_submission(){ 


wp_send_json_error('I am an error');} 
add_action('wp_ajax_data_submission', 'data_submission'); 
add_action('wp_ajax_nopriv_data_submission', 'data_submission'); 

Не удалось найти местонахождение неисправности. Некоторую помощь будет appriciated

ТКС

+0

Я думаю, проблема может быть в вашем файле wp-admin-ajax.php. вы можете показать свой код файла php? – CrazyVK56

+0

Я не использую отдельный или настраиваемый wp-admin-ajax.php, я делаю запрос непосредственно по умолчанию wordpress admin-ajax.php – Shirantha

ответ

0

Во-первых, это не является стандартным способом использования Ajax в WordPress, использования wp_localize_script для внедрения глобальной переменной ajax_url,

wp_register_script('plugin-ajaxJs', plugins_url('/js/ajax-call.js', __FILE__)); 
    wp_enqueue_script('plugin-ajaxJs'); 
    wp_localize_script('plugin-ajaxJs', 'my_ajax_url', array('ajax_url' => admin_url('admin-ajax.php'))); 

Теперь, как URL в AJAX вы может добавить my_ajax_url.ajax_url, , это отправит запрос admin-ajax.php.

Сейчас подходит к вашему вопросу вы возвращаете wp_json_error поэтому результат 0, использования этого и возвращать данные, которые вы хотите в Ajax успеха,

$responce['result'] = 1 
wp_send_json($response); 
+0

Спасибо, Parth, я использовал этот метод для добавления ajax-url, попробовал и все еще нет удача, ошибка такая же, тогда я использовал стандартный ajax_url, no Luck, а затем поместил прямой url в ajax-url (как показано на консоли), чтобы сделать запрос ajax. На консоли Log, я получаю код 200, хорошо.Который я догадываюсь, что данные отправки woks, Но, я не получаю ответ успеха. Позвольте мне загрузить захват экрана из журнала консоли – Shirantha

+0

вместо использования функции wordpress wp_send_json просто попробуйте выполнить эхо-строку, которую вы хотите вернуть, и добавить die; @Shirantha –

+0

Screen Capture С консоли [ссылка] (http: // i66. tinypic.com/2nlqmp3.jpg) – Shirantha

1

Использование add_action («wp_ajax_myaction», «yours_callback_fanc «);

wp_ajax_ Остальная часть - ваше имя действия, которое определено в вашем ajax-вызове. В вашем случае это мое.

+0

Я тоже пробовал, но не удача.
В любом случае, для обсуждения, я думаю, я использовал функцию обратного вызова. – Shirantha

+0

Я тоже это пробовал, но не удача.
В любом случае, для обсуждения, я думаю, что я использовал функцию обратного вызова при событии click. Это неправильный способ сделать это? – Shirantha

+0

В вашей функции последняя строка должна быть wp_die(); –

Смежные вопросы