2016-07-27 9 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

関連する問題