我正在帮助Wordpress构建一个插件,我有点卡在什么应该是一个相当基本的ajax调用。我试图采取对象,并通过方法'grab_object_from_ajax_call'运行它,但该方法从未运行,我难倒了为什么它没有发生。这是我代码的javascript部分:(我调用了错误的操作吗?)
var billingFormOld = new BillingForm("example@email", "kyle", "123 address street", "thisCity");
$(window).on("mousedown", function(){
$.ajax({
type: 'POST',
url: ajaxurl,
data: {
'action': 'grab_object_from_ajax_call',
'billingFormOld': billingFormOld
},
success: function(response){
console.log(response);
console.log("success");
},
error: function(xhr){
console.log(xhr);
}
});
});
这里有两个应该用来使它工作的方法。添加动作方法是运行的,因为我在插件构建时调用它。
function formToBaseAjaxHandler(){
add_action('wp_ajax_grab_object_from_ajax_call', array($this, 'grab_object_from_ajax_call'));//Start AJAX request Handler
}
这是接下来需要运行的方法,但它没有:
function grab_object_from_ajax_call(){
error_log("does this get called"); //never see this in log
$oldBillingForm = (object) $_REQUEST['billingFormOld'];//grabbing the object
$this->enter_object_properties_to_database($oldBillingForm);
die();
}
我得到'0'的响应在我的控制台成功消息,所以我有一种感觉,它是在我的php代码。任何指针可能会阻止这种工作将非常感激。感谢堆栈溢出!div =)
这是如何添加ajax操作到您的plugin.php或functions.php
add_action( 'wp_ajax_my_action', 'my_action_callback' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
在你的例子中:
add_action( 'wp_ajax_grab_object_from_ajax_call', 'grab_object_from_ajax_call_callback' );
add_action( 'wp_ajax_nopriv_grab_object_from_ajax_call', 'grab_object_from_ajax_call_callback' );
function grab_object_from_ajax_call_callback(){
error_log("does this get called"); //never see this in log
$oldBillingForm = (object) $_REQUEST['billingFormOld'];//grabbing the object
$this->enter_object_properties_to_database($oldBillingForm);
die();
}