我尝试使用woocommerce Ajax,我在网上找到很多例子,但没有一个可行。 有人可以查看我的代码,问题出在哪里。
add_action( 'wp_ajax_my_action', 'mmy_real' );
add_action( 'wp_ajax_nopriv_my_action', 'mmy_real' );
function mmy_real(){
check_ajax_referer( 'my-special-string', 'security' );
$make = $_SESSION['vpf']['search']['make'];
$model = $_SESSION['vpf']['search']['model'];
$year = $_SESSION['vpf']['search']['year_id'];
die();
}
function mmy_script(){
wp_register_script( "hover_script", get_template_directory_uri() . '/js/mmy.js', array('jquery'), '1.0.0', true );
wp_localize_script( 'hover_script', 'mmy', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ),'security' => wp_create_nonce( 'my-special-string' )));
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'hover_script' );
}
add_action('init', 'mmy_script');
jQuery(document).ready(function() {
jQuery.ajax({
type: "post",
url : mmy.ajaxurl,
data:{
action:"mmy_real",
make: "make",
model: "model",
year: "year"
},
success: function( response ) {
alert("success");
}
});
});
我在localhost中测试。如果我将url更改为localhost / fhgroupauto / test.php,它将不会提醒成功消息框。它会提醒成功。
我不知道我错过了什么。
由于
答案 0 :(得分:0)
" action"的价值是错的。
你添加钩子" wp_ajax_my_action"和" wp_ajax_nopriv_my_action",所以" wp_ajax _"之后的字符串和" wp_ajax_nopriv _"是" action"的参数。键。
这意味着ajax调用的数据数组应如下所示:
data:{
action: "my_action",
make: "make",
model: "model",
year: "year"
},
For more information see the Wordpress documentation - AJAX in Plugins