有一个脚本将产品添加到购物车会话中,而php正在将响应返回给jquery post函数。问题是我无法检查返回的响应以运行某些动画。
我的jquery代码是:
var product = {
action: 'shs_add_to_cart',
'nonce': wp_nonce_value,
'product': product_id,
'title': product_title,
'qty': quantity.val()
};
$.post(
shsAjaxURL.ajaxurl, product,
function(status) {
var response = $.parseJSON(status);
console.log('response');
if(response == 'success') {
message.find('p').text('Item added to cart');
message.fadeIn(300);
message.delay(2500).fadeOut(300);
}
else {
message.find('p').text('Could not add to cart');
message.fadeIn(300);
message.delay(2500).fadeOut(300);
}
});
PHP代码正常工作,因为它将值添加到会话购物车
$_SESSION['cart_items'] = array(
array(
'item_id' => $product,
'item_name' => $title,
'item_qty' => $qty
)
);
header('Content-Type: application/json');
echo json_encode('success');
wp_die();
我得到以下回复
"success"
有人可以帮忙吗?
答案 0 :(得分:1)
使用dataType json更改您的ajax,如下所示:
$.ajax({
url:shsAjaxURL.ajaxurl,
data: product,
dataType: 'json',
type: 'post',
success:function(data) {
console.log(data.success);
}
});
然后在你的PHP代码中:
$_SESSION['cart_items'] = array(
array(
'item_id' => $product,
'item_name' => $title,
'item_qty' => $qty
)
);
$data['success'] = "success";
echo json_encode($data);