2017-07-11 22 views
1

は、カートの数量は一例「15」「の項目のX数」以上に増やす場合は、選択のお支払い方法を無効にする方法やフィルタはありますか?無効にWooCommerce支払い方法カートの数量の上限に達した場合

私たちはカートに追加する前に、数量の最大数を制限することができます知っているが、私はいくつかのお支払い方法を無効にしたいです。あなたはバスケットの数は、選択した量(例えば、15)を超える場合は、お支払方法は、オークションに表示されないことを支払い条件に指定することができ

おかげ

答えて

1

woocommerce_available_payment_gatewaysフィルタフックにフックされたカスタム関数を使用できます。あなたはそれの中にあなたの数量制限とお支払い方法のスラッグを設定しなければなりません。ここで

はそのコードです:

add_filter('woocommerce_available_payment_gateways', 'unsetting_payment_gateway', 10, 1); 
function unsetting_payment_gateway($available_gateways) { 

    // HERE Define the limit of quantity item 
    $qty_limit = 15; 
    $limit_reached = false; 

    // Iterating through each items in cart 
    foreach(WC()->cart->get_cart() as $cart_item){ 
     if($cart_item['quantity'] > $qty_limit){ 
      $limit_reached = true; 
      break; 
     } 
    } 
    if($limit_reached){ 
     // HERE set the slug of your payment method 
     unset($available_gateways['cod']); 
     unset($available_gateways['bacs']); 
    } 
    return $available_gateways; 
} 

コードは、任意のプラグインファイルでも、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルになりますか。

このコードは、テストの結果、WooCommerceバージョン2.6および3+上で動作されます。

+0

優れています。それは私のために働いた。ありがとう:) – Stunomatic

+0

$ qty_limitで "Custom Field"を渡すことができますか?製品ごとに制限を変更することができますか?上記のこの機能を作成しますが、ロジックが良いとは思わないです function woocommerce_product_expire { //ループ グローバル$ポスト内の現在のポストを得る; //フィールドACFポスト最大購入限度を呼び出し $ qty_limit = the_field( 'max_purchase_limit'、$ポスト> ID); } – Stunomatic

+0

かそれはカテゴリの場合はカテゴリとして賢明に定義し、カテゴリ6が "10"を制限する場合は "5"を制限することができます。 – Stunomatic

0

関連する問題