Thank you so much!!! You solved an issue that no one else I asked could! Did all the steps and modified to my specific website and it worked just great!! Thank you for sharing your knowledge!
Big thanks! Works like a charm for one of my two use-cases. However, I am not a PHP expert. I also need a slight variation on this. I need to hide a shipping method if there are no 'heavy' shipping-class products in the cart. Or the logic could be if there are ONLY 'light' shipping-class products in the cart, then hide Flat_rate:2, flat_rate:5 and flat_rate:7 i.e. If no pallet items (shipping-class 'heavy') in cart, then remove Pallet shipping-method
See this heare below. Change "heavy" and "light" with your own shippin class slug here: if ($shipping_class == 'light') This codes removes specific shipping methods if cart contains products with either "heavy" or "light" shipping class. I cart contains both classes then "heavy" is prioritized. add_filter('woocommerce_package_rates', 'modify_shipping_rates_based_on_class', 10, 2); function modify_shipping_rates_based_on_class($rates, $package) { $has_light = false; $has_heavy = false; // Check each cart item for shipping classes. Change this value with your own shipping class slug. 'heavy' foreach ($package['contents'] as $item_id => $values) { $product = $values['data']; $shipping_class = $product->get_shipping_class(); if ($shipping_class == 'light') { $has_light = true; } if ($shipping_class == 'heavy') { $has_heavy = true; } } // Apply rules based on shipping class presence if ($has_heavy) { // Unset rates for "heavy" unset($rates['flat_rate:1']); unset($rates['flat_rate:6']); unset($rates['flat_rate:22']); } else if ($has_light) { // Unset rates for "light" unset($rates['local_pickup:21']); unset($rates['flat_rate:16']); unset($rates['flat_rate:6']); unset($rates['flat_rate:25']); } return $rates; }
@@wpsimplehacks Thank you very much I got it. I was trying to use your "Hide Category based shipping class trick", But it does not work. May be the reason, your video was made in 2 years back. Now WooCommerce shipping class and method is different than two years back. I wanted to use your trick to hide free shipping on an item from specific category.
Hello!!!!! Thanks for the video, how can I delete only the shipping methods at checkout? and only that it appears in the cart, thank you, I just need the shipment to appear in the checkout that was selected by the customer in the shopping cart, thank you
Thank you! Anything similar to notify a customer they have an "exclusive product" which can only be paid using a defined payment server, so they must pay it as is or remove the product to allow all the payment methods?
Hi, I am delivering products to a specific area "Victoria Australia'. I want to have the shipping and calculation but also want to hide the 'ship to another address' checkbox along with its fields.
you're brilliant 😊it worked perfectly for two classes, one with "Free Shipping only" and the other one with either "Flat rate" or "Cash on delivery". But when two items from different classes are added to cart, it says: No shipping options were found for. I've tried all codes with no luck. Please help!
Probably it means that one product deactivates flat rate, another one cash on delivery. Since these two products are added to the cart your checkout doesn’t have any shipping options. If you delete one of these from the cart then one shipping method will be available.
@@wpsimplehacks Thanks a lot for the reply. Would you plz advise how to tweak the code to show the applicable shipping method(s) based on the products added to cart, i.e. if all products has free shipping then hide all other methods, and if one item added with the other two methods then show other methods and hide free shipping. 🙏
Hi, Great video. Your code also works like a charm! However I have 12 shipping zones which have 12 shipping methods (with different slugs) to be hidden for just 1 Shipping Class. So do I have to paste this code 12 times under each other? OR do I have to create 12 different snippets altogether? Hope you can help me on this.
See this snippet here wpsimplehacks.com/how-to-hide-woocommerce-shipping-methods/#how-to-hide-multiple-woocommerce-shipping-methods-for-specific-shipping-classes This snippet helps you to hide multiple shipping methods that are using same shipping class.
Thank You 😉I's works, but but only to hide method for one shipping class :/ how to change the code to hide one shipping method for multiple classes? For example - shipping methos 1 works only for 1kg un 3 kg shipping class, but doesn't works for 5kg, 10kg and 20kg shipping classes? Please help :)
Maybe this one here helps you out wpsimplehacks.com/how-to-hide-woocommerce-shipping-methods/#how-to-hide-multiple-woocommerce-shipping-methods-for-specific-shipping-classes
Sir can you help me with the code for showing paid shipping option when both the free shipping and paid shipping items comes for checkout. 1-hide free shipping for shipping class with 20$ shipping cost 2-hide this $20 shipping class option for the free shipping items Now when both of the thing comes sametime in cart showing no shipping options available
Hello how I can achieve below requirement? I want to sell my product in all countries with weight based shipping cost. If buyer from US shipping cost will be apply as upto 250gm weight $50 and there after if user add any weight product in cart charges will be apply as $10 1-250gm & Means for 350gm charges will be $60 For 550gm $70 Your help will be aplricated. Thank you
Thank you so much!!! You solved an issue that no one else I asked could! Did all the steps and modified to my specific website and it worked just great!! Thank you for sharing your knowledge!
Glad it helped!😊
Thank you! It's the first time I try to use code snippets and I followed the lines and added a couple of the snippets, and they work like a magic.
Glad it worked 🙂
Thank you! I been struggling for weeks over this. Subscribed and liked )
Glad it helped!
Top man! Thanks for sharing ♥
You're welcome 😊
Big thanks! Works like a charm for one of my two use-cases.
However, I am not a PHP expert. I also need a slight variation on this. I need to hide a shipping method if there are no 'heavy' shipping-class products in the cart. Or the logic could be if there are ONLY 'light' shipping-class products in the cart, then hide Flat_rate:2, flat_rate:5 and flat_rate:7
i.e.
If no pallet items (shipping-class 'heavy') in cart, then remove Pallet shipping-method
See this heare below. Change "heavy" and "light" with your own shippin class slug here: if ($shipping_class == 'light')
This codes removes specific shipping methods if cart contains products with either "heavy" or "light" shipping class. I cart contains both classes then "heavy" is prioritized.
add_filter('woocommerce_package_rates', 'modify_shipping_rates_based_on_class', 10, 2);
function modify_shipping_rates_based_on_class($rates, $package) {
$has_light = false;
$has_heavy = false;
// Check each cart item for shipping classes. Change this value with your own shipping class slug. 'heavy'
foreach ($package['contents'] as $item_id => $values) {
$product = $values['data'];
$shipping_class = $product->get_shipping_class();
if ($shipping_class == 'light') {
$has_light = true;
}
if ($shipping_class == 'heavy') {
$has_heavy = true;
}
}
// Apply rules based on shipping class presence
if ($has_heavy) {
// Unset rates for "heavy"
unset($rates['flat_rate:1']);
unset($rates['flat_rate:6']);
unset($rates['flat_rate:22']);
} else if ($has_light) {
// Unset rates for "light"
unset($rates['local_pickup:21']);
unset($rates['flat_rate:16']);
unset($rates['flat_rate:6']);
unset($rates['flat_rate:25']);
}
return $rates;
}
Excellent tutorial! Thanks a lot. It worked fine for me :)
Great 🙂
Big thanks to you man!! It works like a charm
Great to hear!
Very Impressive Video. Keep up the good work. But my question is- where would I get these sample code from?
Link to the code is in the video description
@@wpsimplehacks Thank you very much I got it. I was trying to use your "Hide Category based shipping class trick", But it does not work. May be the reason, your video was made in 2 years back. Now WooCommerce shipping class and method is different than two years back. I wanted to use your trick to hide free shipping on an item from specific category.
You're brilliant
Thanks :)
Hello!!!!! Thanks for the video, how can I delete only the shipping methods at checkout? and only that it appears in the cart, thank you, I just need the shipment to appear in the checkout that was selected by the customer in the shopping cart, thank you
Sorry, can’t help you with that.
Thank you! Anything similar to notify a customer they have an "exclusive product" which can only be paid using a defined payment server, so they must pay it as is or remove the product to allow all the payment methods?
Sorry, can’t help you with that.
Greetings from Nigeria
Greetings from Estonia ☺️
Hi, I am delivering products to a specific area "Victoria Australia'. I want to have the shipping and calculation but also want to hide the 'ship to another address' checkbox along with its fields.
Sorry, can’t help with that because this is tough one and needs some custom coding.
you're brilliant 😊it worked perfectly for two classes, one with "Free Shipping only" and the other one with either "Flat rate" or "Cash on delivery". But when two items from different classes are added to cart, it says: No shipping options were found for. I've tried all codes with no luck. Please help!
Probably it means that one product deactivates flat rate, another one cash on delivery. Since these two products are added to the cart your checkout doesn’t have any shipping options. If you delete one of these from the cart then one shipping method will be available.
@@wpsimplehacks Thanks a lot for the reply. Would you plz advise how to tweak the code to show the applicable shipping method(s) based on the products added to cart, i.e. if all products has free shipping then hide all other methods, and if one item added with the other two methods then show other methods and hide free shipping. 🙏
Hi, Great video. Your code also works like a charm! However I have 12 shipping zones which have 12 shipping methods (with different slugs) to be hidden for just 1 Shipping Class. So do I have to paste this code 12 times under each other? OR do I have to create 12 different snippets altogether? Hope you can help me on this.
See this snippet here wpsimplehacks.com/how-to-hide-woocommerce-shipping-methods/#how-to-hide-multiple-woocommerce-shipping-methods-for-specific-shipping-classes
This snippet helps you to hide multiple shipping methods that are using same shipping class.
Thank You 😉I's works, but but only to hide method for one shipping class :/ how to change the code to hide one shipping method for multiple classes? For example - shipping methos 1 works only for 1kg un 3 kg shipping class, but doesn't works for 5kg, 10kg and 20kg shipping classes? Please help :)
Maybe this one here helps you out wpsimplehacks.com/how-to-hide-woocommerce-shipping-methods/#how-to-hide-multiple-woocommerce-shipping-methods-for-specific-shipping-classes
Sir can you help me with the code for showing paid shipping option when both the free shipping and paid shipping items comes for checkout.
1-hide free shipping for shipping class with 20$ shipping cost
2-hide this $20 shipping class option for the free shipping items
Now when both of the thing comes sametime in cart showing no shipping options available
Sorry, can’t help you with that.
Hi is there any update in woocommerce that made this snipt of code is not working because I tried so much but it did not work
I just tested and it worked like it did before, that is - without any issues.
great tutorial, but when you don't have the class in the cart, example local courier-only, then its still showing the courier-only method
Hence the video "How to hide shipping methods with shipping classes" :) If there’s no class added, then you can’t hide it with this method :)
@@wpsimplehacks
Do you have a video for that? right now the courier-only is showing though there is no product with that class
All my shipping related hacks are in this video: ua-cam.com/video/lQs48LV5rbA/v-deo.html
how to remove shipping address down of delivery charge in cart page.
Woocommerce settings >> Shipping
How to disable checkout or "add to cart" by shipping class?
What do you mean by that? :)
Hello how I can achieve below requirement?
I want to sell my product in all countries with weight based shipping cost.
If buyer from US shipping cost will be apply as upto 250gm weight $50 and there after if user add any weight product in cart charges will be apply as $10 1-250gm &
Means for 350gm charges will be $60
For 550gm $70
Your help will be aplricated. Thank you
Sorry, can't help you with that
@@wpsimplehacks Thanks for reply