2016-08-13 5 views
1

Based on this answer (code below)に隠されているときは利用できませんローカルピックアップオプション、私は正常にオプションが利用可能である特定の製品カテゴリローカル配信から定額を非表示にすることができます。これは完璧に働いています。送料・メソッド - フラットレートが

問題:ローカルピックアップオプションは利用できませんその特定のカテゴリです。

この特別なカテゴリでローカルピックアップオプションを使用できるようにするにはどうすればよいですか?

これは私が使用するコードです:

function custom_shipping_methods($rates){ 

    // Define/replace here your correct category slug (!) 
    $cat_slug = 'your_category_slug'; 
    $prod_cat = false; 

    // Going through each item in cart to see if there is anyone of your category   
    foreach (WC()->cart->get_cart() as $values) { 
     $item = $values['data']; 

     if (has_term($cat_slug, 'product_cat', $item->id)) 
      $prod_cat = true; 
    } 

    $rates_arr = array(); 

    if ($prod_cat) { 
     foreach($rates as $key => $rate) { 
      if ('free_shipping' === $rate->method_id || 'local_pickup' === $rate->method_id || 'local_delivery' === $rate->method_id) { 
       $rates_arr[ $rate_id ] = $rate; 
       break; 
      } 
     } 
    } 
    return !empty($rates_arr) ? $rates_arr : $rates; 
} 
add_filter('woocommerce_package_rates', 'custom_shipping_methods', 100); 

もう一つ:それは場所によってその特別なカテゴリのローカル配信ローカルピックアップを表示することは可能ですか?

現在私の店にありますローカルピックアップまたは配送は、1か所だけに設定されています。

答えて

関連する問題