Woocommerce ajax从购物车中删除
问题描述:
我知道有重复的线程,但提出的解决方案不起作用(100%) - 这是我与https://stackoverflow.com/a/24027583/1826992合作的解决方案。基本上,阿贾克斯电话是从购物车中删除的项目,但微型购物车不更新,直到我刷新页面。这里是我在哪里:Woocommerce ajax从购物车中删除
add_action('wp_footer', 'add_js_to_wp_wcommerce');
function add_js_to_wp_wcommerce(){ ?>
<script type="text/javascript">
jQuery('body').on('click',".remove",function(){
var product_id = jQuery(this).attr("data-product_id");
console.log(product_id);
jQuery.ajax({
type: 'POST',
dataType: 'json',
url: "/wp-admin/admin-ajax.php",
data: { action: "product_remove",
product_id: product_id
},success: function(data){
console.log(data);
}
});
return false;
});
</script>
<?php }
add_action('wp_ajax_product_remove', 'product_remove');
add_action('wp_ajax_nopriv_product_remove', 'product_remove');
function product_remove() {
$cart = WC()->instance()->cart;
$id = $_POST['product_id'];
$cart_id = $cart->generate_cart_id($id);
$cart_item_id = $cart->find_product_in_cart($cart_id);
if($cart_item_id){
$cart->set_quantity($cart_item_id,0);
}
}
正如我所提到的这一切似乎工作,直到“行动”。此时Console.log(数据)仅携带“0”。我认为这应该有product_id。
在此先感谢您的帮助。
答
从PHP函数&返回一些使用wp_die()
回归后,和包装你的js文件准备好声明
我实现了这些变化。有什么建议返回什么?我已经返回了购物车,但没有购物车仍然不刷新,直到我重新加载页面。谢谢。 – epluribusunum
您需要返回更新的购物车,或者只是根据您更新购物车列表中的购物车清单 – madalinivascu
,您是否知道如何更新购物车清单?对不起,我正在为此苦苦挣扎。提前致谢。 – epluribusunum