Reputation: 68
I hope you can help. The following code in functions.php is returning 0.
function removeItems(){
echo "hello";
die();
}
add_action('wp_ajax_removeItem', 'removeItems');
add_action('wp_ajax_nopriv_removeItem', 'removeItems');
function remove_item(){
echo '<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("body").delegate(".remove_one","click",function(){
var cart_key = jQuery(this).data("cart_key");
jQuery.ajax({
type:"POST",
url: "/wp-admin/admin-ajax.php",
data: {action: "removeItem"},
success:function(data){
alert(data);
}
});
});
});
</script>';
}
add_action('wp_head', 'remove_item');
The common error I can find is not including:
add_action('wp_ajax_nopriv_removeItem', 'removeItems');
...but I've added that in.
action=removeItem
is being added in the console.
Any help would be much appreciated. Mark
Upvotes: 1
Views: 3793
Reputation: 14575
If an action is not specified, admin-ajax.php will exit, and return 0 in the process. This means your frontend has fire an action which Wordpress not recognizing. Wordpress cannot find your wp_ajax_xxx action. You may have specified this action, but remember to load this file, so that it is being called.
Summary:
add_action('wp_ajax_removeItems', 'removeItems');
function removeItems() {
...;
echo json_encode($array);
}
(function($){
var ret = true,
ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>',
data = {
'action': 'removeItems',
};
$.post(ajaxurl, data, function(response) {
console.log(response);
});
})(jQuery);
Upvotes: 1