I'm doing a simple wordpress ajax but the response is very slow and I can't retrieve the data. Here's my code
JS
function getProductData(idObj) {
$.post('/wp-admin/admin-ajax.php', {'action':'get_product_data','data':'asdasd'}, function(response) {
console.log(response);
});
}
PHP
function get_product_data() {
echo $_POST['data'];
}
add_action('wp_ajax_get_product_data', 'get_product_data');
add_action('wp_ajax_nopriv_get_product_data', 'get_product_data');
The response is always 0 and it takes 12 seconds to respond.
You need to add die()
or wp_die()
at the end of the get_product_data function:
function get_product_data() {
echo $_POST['data'];
die();
}
I have not tried this code but I hope it works for you.
JS: Change
function getProductData(idObj) {
$.post('/wp-admin/admin-ajax.php', {'action':'get_product_data','data':'asdasd'}, function(response) {
console.log(response);
});
}
to
function getProductData(idObj) {
$.ajax({
type: 'POST',
url: '/wp-dmin/admin-ajax.php',
data: {
action: 'get_post_data',
'myecho': myecho,
}
PHP: change
function get_product_data() {
$myecho = $_POST['data'];
echo $myecho;
}
add_action('wp_ajax_get_product_data', 'get_product_data');
add_action('wp_ajax_nopriv_get_product_data', 'get_product_data');