How to Hide Woocommerce Shipping Methods with Shipping Classes?

Поделиться
HTML-код
  • Опубликовано: 28 окт 2024

Комментарии • 45

  • @PTBPCarson
    @PTBPCarson 2 месяца назад

    Thank you! I been struggling for weeks over this. Subscribed and liked )

  • @dadadada-of8bj
    @dadadada-of8bj 2 года назад

    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.

  • @ingarnt
    @ingarnt 6 месяцев назад

    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

    • @wpsimplehacks
      @wpsimplehacks  6 месяцев назад +2

      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;
      }

  • @Pororos
    @Pororos Год назад

    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?

  • @lissettetalhouk4436
    @lissettetalhouk4436 Год назад

    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

  • @jeremylhomme7581
    @jeremylhomme7581 3 года назад

    Big thanks to you man!! It works like a charm

  • @161633232
    @161633232 2 года назад

    Excellent tutorial! Thanks a lot. It worked fine for me :)

  • @RohitChourasia
    @RohitChourasia 2 года назад

    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.

    • @wpsimplehacks
      @wpsimplehacks  2 года назад +1

      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.

  • @RAFIQULISLAM-917
    @RAFIQULISLAM-917 2 месяца назад

    Very Impressive Video. Keep up the good work. But my question is- where would I get these sample code from?

    • @wpsimplehacks
      @wpsimplehacks  2 месяца назад

      Link to the code is in the video description

    • @RAFIQULISLAM-917
      @RAFIQULISLAM-917 2 месяца назад

      @@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.

  • @qariasim
    @qariasim Год назад

    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!

    • @wpsimplehacks
      @wpsimplehacks  Год назад

      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.

    • @qariasim
      @qariasim Год назад

      @@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. 🙏

  • @SoftExpert1
    @SoftExpert1 3 года назад

    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.

    • @wpsimplehacks
      @wpsimplehacks  3 года назад

      Sorry, can’t help with that because this is tough one and needs some custom coding.

  • @I-rshad
    @I-rshad Год назад

    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

  • @Jabro111
    @Jabro111 3 года назад

    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 :)

    • @wpsimplehacks
      @wpsimplehacks  3 года назад

      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

  • @timbrazeal4751
    @timbrazeal4751 2 года назад

    You're brilliant

  • @mohammadal-najjar5115
    @mohammadal-najjar5115 2 года назад

    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

    • @wpsimplehacks
      @wpsimplehacks  2 года назад +1

      I just tested and it worked like it did before, that is - without any issues.

  • @banatcollections527
    @banatcollections527 11 месяцев назад

    how to remove shipping address down of delivery charge in cart page.

    • @wpsimplehacks
      @wpsimplehacks  11 месяцев назад

      Woocommerce settings >> Shipping

  • @oceanwired
    @oceanwired Год назад

    How to disable checkout or "add to cart" by shipping class?

  • @datboyfemi
    @datboyfemi 3 года назад

    Greetings from Nigeria

  • @TheyCallMeRome
    @TheyCallMeRome Год назад

    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

    • @wpsimplehacks
      @wpsimplehacks  Год назад

      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 :)

    • @TheyCallMeRome
      @TheyCallMeRome Год назад

      @@wpsimplehacks
      Do you have a video for that? right now the courier-only is showing though there is no product with that class

    • @wpsimplehacks
      @wpsimplehacks  Год назад

      All my shipping related hacks are in this video: ruclips.net/video/lQs48LV5rbA/видео.html

  • @dsuinfotech
    @dsuinfotech Год назад

    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