2017-09-23 82 views
0

我在從購物車中刪除產品時遇到問題。我的代碼在ajax中刪除產品,但不刷新購物車。這是我的代碼:使用woocommerce中的ajax刪除自定義購物車中的產品

add_filter('woocommerce_add_to_cart_fragments','woocommerce_header_add_to_cart_fragment'); function woocommerce_header_add_to_cart_fragment($fragments) { 
global $woocommerce; 
$cart = $woocommerce->cart->cart_contents; 
ob_start(); 
$cart_count = sprintf(_n('%d', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count); 
?> 
<div data-toggle="dropdown" class="cart-customlocation" [...] ?></span> 
    <div class="dropdown-menu custom-cart"> 

     <?php foreach($cart as $cart_item_key => $item){ ?> 

      <?php $img_url = $item['data']->image_id; ?> 
      <img src="<?php echo wp_get_attachment_url($img_url); ?>" alt=""> 
      [...] <- content 
      <a class="remove-product" data-product_id="<?php echo $cart_item_key ?>">X</a> 
     <?php } ?> 
     <script type="text/javascript"> 
      jQuery('.remove-product').click(function(){ 
       var product_id = jQuery(this).attr("data-product_id"); 
       console.log(product_id); 
       jQuery.ajax({ 
        type: 'POST', 
        dataType: 'json', 
        url: "myURL", 
        data: { action: "product_remove", 
          product_id: product_id 
        },success: function(data){ 
        } 
       }); 
       return false; 
      }); 
     </script> 
    </div> 
</div> 
<?php $fragments['.cart-customlocation'] = ob_get_clean(); 
return $fragments; 

,這是一個名爲AJAX功能:

function product_remove() { 

global $woocommerce; 

$id = $_POST['product_id']; 

$woocommerce->cart->remove_cart_item($id);} 

回答

0

你去除你的PHP對象的項目,但如果你想從當前視圖中移除你必須選擇該項目並使用jquery在你的'ajax調用的成功函數中刪除它。類似...

,success: function(data){ 
    $([selector for your product line]).remove(); 
} 

我看不到您的產品系列的html(要查看您想要刪除的格式)。如果你粘貼它,我會幫你一把。

+0

謝謝你回答我的問題。我理解這個解決方案,我會測試它。請給我第二個。 :) –

0

嗯。我將此代碼添加到我的文件:

 <?php foreach($cart as $cart_item_key => $item){ ?> 
      <div class="menu-product-id-<?php echo $cart_item_key ?>"> 
       <?php $img_url = $item['data']->image_id; ?> 
       <img src="<?php echo wp_get_attachment_url($img_url); ?>" alt=""> 

       <?php echo $name = $item['data']->title; ?> 

       <?php echo $price = $item['line_total']/$item['quantity']; ?> 

       <?php echo $quantity = $item['quantity']; ?> 

       <?php echo $item_key = $cart_item_key; ?> 

       <?php echo $item_id = $item['product_id']; ?> 

       <a class="remove-product" data-product_id="<?php echo $cart_item_key ?>">REMOVE</a> 
      </div> 
     <?php } ?> 

這個代碼AJAX:

<script type="text/javascript"> 
      jQuery('.remove-product').click(function(){ 
       var product_id = jQuery(this).attr("data-product_id"); 
       console.log(product_id); 
       jQuery.ajax({ 
        type: 'POST', 
        dataType: 'json', 
        url: "myURL", 
        data: { action: "product_remove", 
          product_id: product_id 
        },success: function(data){ 
         $('menu-product-id-'+product_id).remove(); 
        } 
       }); 
       return false; 
      }); 
     </script> 

但東西不行

+0

「。」!!!!!!!!!! XD –

+0

$('menu-product-id - '+ product_id).remove(); => $('。menu-product-id - '+ product_id).remove(); –

+0

完美的作品!非常感謝你! :) A.伊格萊西亞斯 –

相關問題