2017-03-22 11 views
0

分量が一定数を超えている場合にのみ購入できるカップルがあります。woocommerce変更数量カート内の各製品の最小限度数

私は子供のテーマのfunctions.phpにコードのスニペットを書いて、製品の最小量を変更しました。

function wpa116693_filter_min_quantity($min, $product){ 

    if (has_term ('5', 'product_tag')){ 
     return 5; 
    } 

    if (has_term ('10', 'product_tag')){ 
     return 10; 
    } 

    if (has_term ('6', 'product_tag')){ 
     return 6; 
    } 
} 
add_filter('woocommerce_quantity_input_min', 'wpa116693_filter_min_quantity', 10, 2); 

だから、それはそれ、これは単一の製品ページで働く分5に数量を変更しますが、それは、カートのページでは動作しませんタグ5との製品を見つけた場合、である何をしますか。私はカートページの最小量よりも低くすることができます。カートのページでは「has_term」が機能しないため、動作しないと思います。

カートページでも機能したいです。 私はこれを解決するのを助けてください、ありがとう。

答えて

1

あなたはこのようwoocommerce_cart_loaded_from_sessionにあなたの関数をフックする必要があります。

add_action('woocommerce_cart_loaded_from_session', 'wh_checkAndUpdateCart'); 

function wh_checkAndUpdateCart() 
{ 

    //if the cart is empty do nothing 
    if (WC()->cart->get_cart_contents_count() == 0) 
    { 
     return; 
    } 

    foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) 
    { 
     $product_id = $cart_item['product_id']; // Product ID 
     $product_qty = $cart_item['quantity']; // Product quantity 

     if (has_term(5, 'product_tag', $product_id) && ($product_qty > 5)) 
     { 
      WC()->cart->set_quantity($cart_item_key, 5); 
     } 
     if (has_term(10, 'product_tag', $product_id) && ($product_qty > 10)) 
     { 
      WC()->cart->set_quantity($cart_item_key, 10); 
     } 
     if (has_term(6, 'product_tag', $product_id) && ($product_qty > 6)) 
     { 
      WC()->cart->set_quantity($cart_item_key, 6); 
     } 
    } 
} 

コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルになります。また、任意のプラグインのPHPファイルにもあります。
コードがテストされ、動作します。

希望します。

+0

こんにちは、それは動作します!私はあなたが私を少し誤解したと思う、少しちょっと。私はif演算子を ">"から "<"に変更し、has_termの後に数字を引用符で囲まなければなりませんでした。それ以外の理由で、うまく動作しませんでした。 2つの質問がありますが、これによって入力量にmin属性を入れることは可能ですか? 私はajaxを商品ページに数量を入力してカートに追加しています。カートに追加ボタンをクリックすると、回転アイコンに固執しますが、商品をカートに追加します。それは私に "カートを見る"とチェックのアイコンを表示するボタンの下にリンクを与える必要があります。 –

+0

申し訳ありませんが、私はあなたにこれを手に入れませんでした。_可能な限り、min_属性をthis_を通して入力する量に入れてください。 - このためカートのエラーメッセージを表示しますか? 2番目の質問では、あなたが書いたコードで新しい質問を投稿する必要があります。 –

+0

入力量には属性minおよびmaxがあります。あなたのコードにmin属性コードを掛けて、人々が入力ボックスの最小量よりも低い値を入力できないようにしたい。私の質問に投稿したコードは、単一の製品ページで動作します。私はちょっと問題を修正し、 "add_action"を "add_filter"に変更しようとしましたが、問題なく動作しました。多分あなたは別の解決策を持っていたでしょうか? –

関連する問題