我在商店页面使用woocommerce shotcode [woocommerce_cart]。我尝试使用ajax删除产品。如何找到产品ID和购物车删除功能无效。
jQuery(document).ready(function( $ ) {
$( document ).on( 'click', '.product-remove .remove', function(e) {
e.preventDefault();
var unit_id =// how can find product id;
e.preventDefault();
$.ajax({
type: 'post',
beforeSend: function() { $('#wait').show(); },
data: {catremovpid: unit_id}, //Pass the id
url:'http://mysiteurl.com/one-page/test/',
success: function(data){
$('.bd_woo_cart').empty().prepend('');
$('.bd_woo_cart').append(data);
console.log(data);
},
error: function(data){
console.log('error');
}
});
});
});
php功能是
if (isset($_POST["catremovpid"])){
$data = $_POST["catremovpid"];
$prod_unique_id = WC()->cart->generate_cart_id($data );
// Remove it from the cart by un-setting it
unset( WC()->cart->cart_contents[$prod_unique_id] );
echo do_shortcode ('[woocommerce_cart]');
}
但产品不会在购物车上移除。但是此代码适用于购物车页面。但是在商店页面上这不起作用。
答案 0 :(得分:0)
尝试使用remove_cart_item()方法而不是php unset:
if (isset($_POST["catremovpid"])){
$data = $_POST["catremovpid"];
$prod_unique_id = WC()->cart->generate_cart_id($data );
// Remove it from the cart by un-setting it
WC()->cart->remove_cart_item($prod_unique_id);
echo do_shortcode ('[woocommerce_cart]');
}