How to Hide a Shipping Method for Product Category
In this guide, you will learn two ways of how you can enable or disable WooCommerce shipping methods depending on products from a specific category in the customer’s cart or an order.
First, I will show you how to easily add conditions with a plugin, and then we will also take a look at a programmatic approach.
Simple Conditional Shipping and Payments
Restrict or allow payment and shipping methods based on specific parameters, such as cart total and weight, a specific product or product category in the cart, the customer’s country, postcode, etc.
How to Disable Shipping Methods for Certain Products
Below, I will show you how to configure different shipping methods for different products in WooCommerce, so we can enable or disable a specific shipping method when a certain product is in the customer’s cart (or in a specific order).
We will dive into both programmatic and plugin approaches; more than that, I will show you how to do it not only for specific products, but also for products with a specific shipping class.
Allow Shipping Methods Based on Date and Time
In this article, I will show you different ways to enable or disable WooCommerce shipping methods based on:
- time of day when an order is created,
- day of the week (we can also do it for specific dates or a date range).
Below, I will guide you on how to implement each option both programmatically and using my plugin, Simple Conditional Shipping and Payments.
As a bonus, we will also calculate shipping costs based on date and time.
Enable or Disable Payment Methods for Shipping Methods
Sometimes, in your WooCommerce store, you may need to allow specific payment methods depending on the selected shipping method by a customer.
The simplest example is when you want to allow the “Cash on delivery” payment method when “Local pickup” is selected as the shipping method. Or maybe vice versa – when your pickup points don’t accept cash, and you need “Cash on delivery” enabled only for shipping products with a carrier.

Setting Up Role-Based Shipping Methods in WooCommerce
In this guide, I will show you how you can enable or disable specific shipping methods depending on a user role in your WordPress site (I mean, WooCommerce store).
But don’t all the customers in WooCommerce have a dedicated role – “Customer”? Well, while it is true, it is not a requirement; customers still can have other WordPress roles, even multiple roles, along with the “Customer” role.
A simple example: let’s say you have a custom role in your store, “Premium customer” or something like that, and your goal is to grant free shipping to all your premium customers.
We will take a look at two approaches – using a plugin and a programmatic approach.
Sounds good? Now, let’s dive into it.
How to Configure WooCommerce Shipping Methods by Weight
Recently, I’ve been browsing Reddit and found out that some users assume that weight-based shipping can be configured in WooCommerce itself, using its standard settings.
For better or worse, there is no such functionality in WooCommerce out of the box, so we need to install a plugin for that or code everything from scratch.
Below, in this guide, I will show two different scenarios on how we can use the weight of a customer’s cart to either calculate the shipping or to allow specific shipping methods.