在购物车上移除产品

时间:2017-11-19 18:14:21

标签: wordpress plugins woocommerce

我在商店页面使用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]');    
}

但产品不会在购物车上移除。但是此代码适用于购物车页面。但是在商店页面上这不起作用。

1 个答案:

答案 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]');    
}