我正在帮助构建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代码中。任何可能阻止这种工作的指针都将非常感激。谢谢堆栈溢出! =)
答案 0 :(得分:0)
这是向plugin.php或functions.php
添加ajax操作的方法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();
}