2017-01-23 11 views
1

私は問題を抱えている:Woocommerce同時に2つの配送オプション

私は2つの出荷のカテゴリを持って

の1- アルファ

2 - ベータ

アルファべき(製品別ではなく)50ドル、アルファ製品の合計額(送料と税金がない)が400ドルを超える場合は、alfa shippingはfr ee。 私はこのルールを実行しましたが、アルファ製品のみがチャートに挿入されていない場合にのみ正しく動作します。

ベータは、ベータ版製品がチャートに挿入されていない場合にのみ、fedEx出荷プラグインを使用して計算する必要があります。

私がアルファとベータの製品をチャートに入れたら、アルファルールしか得られません。

私はこのようにプラグインを出荷ツリー表でのルール設定:

USA 
Child rules rate add sum of child rates 

    ALFA 
    Package all items at once 
    Contains specified and maybe others ALFA any amount 
    Calculate fees for all matching items at once 
    Other shipping plugins FEDEX add all rates 

    BETA 
    Contains specified and maybe others BETA subtotal without tax and discount below 400$ 
    Charge Flat Fee 50$ 

    BETA 
    Contains specified and maybe others BETA subtotal without tax and discount above 400$ 
    Free shipping 
+0

誰も私を助けることはできませんましたか? –

+0

最初に配送クラスでカートを分割します – Mickey

+0

@Mickeyはい、私はすでに行っています。ありがとう –

答えて

0

分割出荷クラスによってカートをしても、「キャプチャ」オプションので、その後のルールは、出荷クラス一度に処理されていません選択パッケージが処理されました。子ルールを作成し、それぞれの配送クラスを含める必要があります。「すべて指定された&他」オプションは、それぞれのルールがそれぞれの出荷クラスにのみ適用されるようにします。

0

このsnippet from here

add_filter('woocommerce_cart_shipping_packages', 'wf_split_cart_by_shipping_class_group'); 

    function wf_split_cart_by_shipping_class_group($packages){ 

     //Reset packages 
     $packages    = array(); 

     //Init splitted package 
     $splitted_packages  = array(); 

     // Group of shipping class ids 
     $class_groups = array(
      'group1' => array(9,10), 
      'group2' => array(20), 
      'group3' => array(11,15,17),   
     ); 

     // group items by shipping classes 
     foreach (WC()->cart->get_cart() as $item_key => $item) { 
      if ($item['data']->needs_shipping()) { 

       $belongs_to_class_group = 'none'; 

       $item_ship_class_id = $item['data']->get_shipping_class_id(); 

       if($item_ship_class_id){ 

        foreach($class_groups as $class_group_key => $class_group){ 
         if(in_array($item_ship_class_id, $class_group)){     
          $belongs_to_class_group = $class_group_key; 
          continue; 
         } 
        } 

       }   

       $splitted_packages[$belongs_to_class_group][$item_key] = $item; 
      } 
     } 

     // Add grouped items as packages 
     if(is_array($splitted_packages)){ 

      foreach($splitted_packages as $splitted_package_items){ 
       $packages[] = array(
        'contents'  => $splitted_package_items, 
        'contents_cost' => array_sum(wp_list_pluck($splitted_package_items, 'line_total')), 
        'applied_coupons' => WC()->cart->get_applied_coupons(), 
        'user'   => array(
         'ID' => get_current_user_id(), 
        ), 
        'destination' => array(
         'country' => WC()->customer->get_shipping_country(), 
         'state'  => WC()->customer->get_shipping_state(), 
         'postcode' => WC()->customer->get_shipping_postcode(), 
         'city'  => WC()->customer->get_shipping_city(), 
         'address' => WC()->customer->get_shipping_address(), 
         'address_2' => WC()->customer->get_shipping_address_2() 
        ) 
       ); 
      } 
     } 

     return $packages; 
    } 
関連する問題