1
我有一个简单的AJAX函数,放在我的主题的functions.php中。它的工作原理,“工作”正确返回到jQuery ajax请求,所以事情的一面是好的。将AJAX函数放置在插件中时不起作用
BUT,当相同的功能被置于一个插件代替,它不再起作用,只是返回0
function addCustomer(){
echo "working";
die();
}
add_action('wp_ajax_addCustomer', 'addCustomer');
add_action('wp_ajax_nopriv_addCustomer', 'addCustomer');
我还试图将所述动作钩的 内如果(is_admin()) 正如this tutorial中所建议的那样,但没有运气。
我想我可能忽略了一些令人难以置信的明显的东西,但我无法弄清楚。任何帮助表示赞赏,因为我现在一直在Google上搜索几个小时。
编辑:这里是AJAX调用我使用:
<script type="text/javascript">
jQuery('#newCustomerForm').submit(ajaxSubmit);
function ajaxSubmit(){
var newCustomerForm = jQuery(this).serialize();
jQuery.ajax({
type:"POST",
url: "/wp-admin/admin-ajax.php",
data: newCustomerForm,
success:function(data){
jQuery("#feedback").html(data);
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
}
,但我敢肯定这一点是好的,因为它可以正常使用时,接收功能被放置在functions.php的,只是没有当放置在一个单独的插件中。
你应该阅读你太链接的文章,并做他们正在做的方式。这是正确的方法。 – thenetimp 2012-02-09 12:41:28
好吧,我发布的简单代码和链接文章的完成方式之间有很大区别。具体而言,我想知道他们究竟做了些什么才能使其发挥作用 - 我相当肯定地说,整个课程都是很好的编程,但不是必需的。事实是,我没有nonce检查阻止它?如果是这样,为什么它会在函数中工作,但不在插件中? – 2012-02-09 12:44:45
你确定你没有收到数据吗?您是否尝试过使用休息客户端调用ajax调用,以便看到返回的内容?数据类型可能期望json返回并且您正在使用print语句,因此这可能是一个因素。向我们展示您的AJAX调用代码的样子,以便我们可以看到这两个问题。 – thenetimp 2012-02-09 12:49:26