2016-07-27 77 views
1

我在Woocommerce中有一個名爲'required'的產品類別,並且此類別中的任何產品必須與每個訂單一起訂購。主要是法律費用。不允許從Woocommerce中刪除購物車

有沒有辦法阻止這些產品被從購物車中移除?問題是他們中的一些人有一個數量,他們可以訂購1個或更多,但至少1 ...購物車中的數量框允許0,並且從購物車X中刪除。

我有一個循環購物車的內容,並可以看到每個購物車的類別...但我如何防止它被刪除或數量設置爲0?

add_action('woocommerce_check_cart_items', 'gs_set_min_qty_per_product'); 
function gs_set_min_qty_per_product() { 
    // Only run in the Cart or Checkout pages 
    if(is_cart() || is_checkout()) { 
     global $woocommerce; 

     $count = $woocommerce->cart->cart_contents_count; 

     if ($count > 0) { 
      foreach ($woocommerce->cart->get_cart() as $cart_item_key => $values) { 
       $_product = $values['data']; 
       $terms = get_the_terms($_product->id, 'product_cat'); 

       foreach ($terms as $term) { 
        if (strtolower($term->name) == 'required') { 

       } 
      } 
     } 
    } 
} 

我不;噸希望他們能夠刪除它,然後告訴他們,他們無法進行,不會在加回來,因爲我們的街上購物車建在步的方式,他們將不得不重新開始。

有沒有辦法攔截remove_from-cart()鉤子,並且不允許刪除該類別中的任何內容?

+0

我知道這是一年前的現在,但任何機會,你可以分享你的最終代碼? – Brian

回答

1

那麼你可以過濾woocommerce_cart_item_remove_link刪除購物車中的鏈接。像這樣的東西可能會有所幫助。但是如果有人知道鏈接,他們仍然可以手動輸入鏈接。

add_filter('woocommerce_cart_item_remove_link', 'so_38622032_remove_link', 10, 2); 
function so_38622032_remove_link($link, $cart_item_key){ 
    if(WC()->cart->find_product_in_cart($cart_item_key)){ 
     $cart_item = WC()->cart->cart_contents[ $cart_item_key ]; 
     $product_id = $cart_item['product_id']; 
     if(has_term('required', 'product_cat', $product_id)){ 
      $link = ''; 
     } 
    } 
    return $link; 
} 
+0

是的,我最終做了類似於今天早些時候的事情,並且我還添加了一個鉤子以將所需的產品添加到購物車中,然後以某種方式將其移除。我會很快發佈代碼。 – poptartgun

相關問題