Я только начал экспериментировать с jQuery и ajax. Я просмотрел похожие сообщения, но все еще не могу решить свою проблему.
Итак, я пишу плагин для wordpress. У меня есть следующее:
add_action('wp', 'wl_init');
add_action('wp_ajax_wl_add_wishlist', 'wl_wishlist_process');
add_action('wp_ajax_nopriv_wl_add_wishlist', 'wl_wishlist_process');
function wl_wishlist_process (){
echo 'test';
die();
}
function wl_init(){
wp_register_script( 'wishlist-js', plugins_url( '/wishlist.js', __FILE__ ), array('jquery') );
wp_localize_script( 'wishlist-js', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'jquery');
wp_enqueue_script( 'wishlist-js' );
}
И это мой js файл "
jQuery(document).ready(function($) {
$('#wl_wishlist').click(function(e) {
alert('This runs');
//var plugurl = document.location.protocol+'//'+document.location.host+'/test/wp-admin/admin-ajax.php';
//"<?php echo admin_url('admin-ajax.php'); ?>"
//"/test/wp-admin/admin-ajax.php"
jQuery.ajax({url: myAjax.ajaxurl, type: 'post', data: {action: 'wl_wishlist_process', post_id:100}, success: function(response) {
alert(response);
},
error : function (xhr){
alert('There is an error');
}});
});
});
Я знаю, что файл js загружен и запущен, когда я вижу предупреждение (' Это запускает '). Однако это не дает мне успеха или ошибки. Это ошибка с вызовом ajax или ошибка функции обратного вызова? Что мне здесь не хватает?
Кроме того, когда я открываю URL-адрес вызова ajax (http://localhost/test/wp-admin/admin-ajax.php), он показывает «0». Это правильно?
Я использовал все закомментированные методы для получения URL-адреса, но ни один из них не работает .
Спасибо!