2016-07-27 4 views
1

Woocommerce에서 '필수'라는 제품 카테고리가 있으며이 카테고리의 제품은 각 주문과 함께 주문해야합니다. 주로 법률 비용입니다.Woocommerce에서 Disallow 제거

이러한 제품이 장바구니에서 제거되지 않도록 할 수있는 방법이 있습니까? 문제는 그 중 일부는 수량이며, 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') { 

       } 
      } 
     } 
    } 
} 

나는 돈, t는 우리의 shoping 카트 단계에 내장 된 방법은, 그들이 다시 시작해야하기 때문에 그들이 그것을 제거하고 그들이 다시 추가하지 않고 계속할 수 없습니다를 말할 수 있어야합니다.

remove_from-cart() 후크를 가로 채고 해당 카테고리의 항목을 제거하지 못하도록 할 수 있습니까?

+0

1 년 전 이었지만 최종 코드를 공유 할 수 있으십니까? – 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

관련 문제