12

I've just set up a Woocommerce based webstore and I'm very happy with it so far, but I've come across something that isn't necessarily a dealbreaker, though it's annoying for the customer.

Some context: the store is for my band website and sells physical as well as digital media, collecting shipping information for physical media makes a lot of sense of course, however it's unnecessary step if the customer is only buying digital media.

I've been searching but not had any luck, is there any way to turn off the shipping if all of the items in the user's cart are digital downloads?

dbc
  • 104,963
  • 20
  • 228
  • 340
Alex Holmes
  • 121
  • 1
  • 1
  • 3

3 Answers3

18

UPDATE For WooCommerce 2.6+ (and 3+)

1) Enabling shipping in WooCommerce (prior)

You need to go in:

WooCommerce > Settings > General > Shipping Location(s) (selector), to select a shipping behavior for your e-commerce:

enter image description here

Then save. A new Shipping Tab is going to appear in WooCommerce Settings (in products too).


2) To disable shipping for your downloadable product

You need in your product page edit mode within the Product data metabox to enable:

  • The downloadable checkbox (as this product is downloadable logically).
  • The virtual checkbox (as this product is not going to be shipped, logically too)

enter image description here

When enabling the virtual checkbox the shipping tab setting will disappear.

enter image description here

Then update your downloadable product.

Now If you add to cart this downloadable (virtual) product and you go to checkout, there is NOT anymore shipping address or shipping options for this product.

LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399
  • I switched from WooCommerce to Easy Digital Downloads (which I'm finding to be much better for my purpose), so I'm not going to verify this for myself, but I'll take your word for it. Bounty awarded. – Jason Swett Dec 22 '16 at 15:04
  • @JasonSwett This is tested and works. I can show you that if you want on my raw test server… It's finally just a question of settings in woocommerce. Anyway, thanks you very much… – LoicTheAztec Dec 22 '16 at 17:51
  • I'll just take your word for it since I personally no longer have any interest in the solution. – Jason Swett Dec 28 '16 at 09:52
  • @LoicTheAztec I wonder how to achieve this for non downloadable products. Example: I sell tourist packages and I won't directly send any file (downloadable product) to the customer. I have set them up as virtual products, but the shipping information is still requested in the checkout step. Thanks in advance – xarlymg89 Apr 27 '18 at 17:05
  • 1
    @CarlosAlbertoMartínezGadea If you disable shipping in woocommerce general settings (like in the first screenshot), there is no more shipping related in woocommerce even in checkout. – LoicTheAztec Apr 27 '18 at 19:03
  • @LoicTheAztec I did that before writing you down, but I still get Country, Address and other shipping related information in the checkout form. And they are required, not even optional. Perhaps my checkout template has it no matter what my WooCommerce settings are? That'll be weird, since WooCommerce generated that template, but I'll check it just in case. – xarlymg89 Apr 28 '18 at 11:15
7

Go to WooCommerce => Settings => Shipping => Shipping Destination and uncheck "Collect shipping address even when not required".

According to the code, if all items are "virtual" then shipping is not required. If you have the aforementioned box checked, it ignores whether the items are in the cart are physical or virtual and will require the shipping address.

Ken
  • 71
  • 3
  • I have this unchecked but it's still collecting the data when I test purchase a virtual item. – Alex Holmes Jul 13 '13 at 08:33
  • 2
    What version of WooCommerce are you using? You can find that in the System Status => Environment. – Ken Jul 13 '13 at 18:04
  • 1
    I miss this feature for specific delivery options. For instance, if a customer selects "Collect at store", I really don't want them to enter the address. How can I do this? – FooBar Nov 27 '13 at 10:27
  • I'm using WooCommerce 2.6.9 and I don't seem to have this setting. There is no "Shipping" section under Settings, as far as I can tell, nor is there anything under System Status that mentions address. There's also no section under System Status called just "Environment". There's WordPress Environment and Server Environment, neither of which seem to have any option related to address. – Jason Swett Dec 16 '16 at 21:57
  • @JasonSwett I just tested on Storefront theme and was able to buy a virtual product without shipping appearing. There is a shipping setting. I think you've just missed it. It's `WooCommerce->Settings` and then a `Shipping` tab in the horizontal tabs across the top of the screen. That said I still had to enter billing address. You may want to go into more detail about what you're trying to achieve – James Jones Dec 17 '16 at 00:51
  • @JasonSwett I have post an answer that will solve definitively your issue. Please look at it and try it. Thanks – LoicTheAztec Dec 22 '16 at 09:26
3

in the new versions of Woocommerce luckily, the tick of a “Downloadable” product type will disable shipping for this product enter image description here

Yahya Hussein
  • 8,767
  • 15
  • 58
  • 114