前端的woocommerce ajax无法正常工作

时间:2018-05-30 15:29:57

标签: php jquery ajax woocommerce

我尝试使用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,它将不会提醒成功消息框。它会提醒成功。

我不知道我错过了什么。

由于

1 个答案:

答案 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