I get asked this question a lot, and it’s an excellent question:
Can I only offer certain payment or shipping methods to certain customers in my WooCommerce store?
This question typically arises for shops that have members or wholesale customers, as shop owners want to offer different shipping methods or payment methods to these customers. The answer is: Absolutely.
The WooCommerce Role Based Methods extension ($49) lets you determine which WooCommerce shipping and payment methods should be offered to which customers. You can set up systems that only allow invoices for wholesalers, or provide free or expedited shipping to members and subscribers.
Note that this won’t take into consideration what’s in the cart, or anything about the order, but will only be related to the customer checking out. If you restrictions should be dependent on the order itself, the new Conditional Shipping and Payments extension is a better fit, as it lets you set criteria for restrictions, such as the products being purchased, order value, or the billing address location.
There are two criteria you can use to restrict your payment or shipping methods in WooCommerce: the customer role (which is a core WordPress function), or the customer group, which can be created with a free plugin.
WooCommerce automatically creates two new roles on your site when installed:
Shop Manager and
Customer. Anyone who creates an account while purchasing an item in your store will be created as a “Customer” role. However, this doesn’t mean you’re only limited to these roles.
You can use the free User Role Editor plugin to create new roles on your site, which you can then assign customers to in order to determine which payment and shipping methods are available. For example, I can create an exact clone of the Customer role and make it “Wholesale Customer”. This will allow Wholesale Customers to all of the exact same things as customers, but I can use this new role for my restricted payment and shipping methods.
If you don’t want to change customer roles, you can also look into using the free Groups plugin. This gives you another way of categorizing users on your site, and assigning them new capabilities outside of their roles. For example, many people use Groups to create a WooCommerce membership site because they can allow some posts or site content to be read only by certain groups.
Groups can also be used with Role Based Methods to assign particular WooCommerce shipping and payment methods.
You can use either roles or groups to assign payment methods to customers. Let’s start with an example that uses roles.
When you install Role Based Methods, you’ll now see a new menu under WooCommerce > Role Based Methods that will let you enable and disable payment and shipping methods for certain customers. You’ll only see active methods, so be sure you have all payment and shipping methods already set up.
You can simple check or uncheck which roles should have access to which methods. In my example, I’ll let customers have access to PayPal Express, while I’ll set wholesale customers (the new role I created using the User Role Editor) have access to mailed invoices, but not PayPal Express. Both roles will be able to use credit cards and eChecks while paying.
When these customers visit my shop, customers will be shown credit cards, eChecks, and PayPal Express as available methods, while wholesale customers will be shown invoices, credit cards, and eChecks:
If you have the Groups plugin enabled, you can also enable or disable payment methods based on the group as well. Note that the “Registered” group applies to any registered users, so you may want to disable all methods for registered users and cover them either in the role or group.
You can also take this a bit further by changing the logic between an “AND” condition, or an “OR” condition. For example, using “or” means that a customer has to be a wholesale customer (role) or a club member (group) to be able to pay via invoice, while using the and logic would mean that the customer must be both that role and group to do so.
Restricting shipping methods in WooCommerce is done in the exact same way from WooCommerce > Role Based Methods > Shipping Methods. You can check or uncheck the active methods to enable or disable them for customer roles.
If Groups is active, you’ll see the Groups table as well, and can enable or disable shipping methods based on the group. As with payment methods, you can swap between AND / OR logic to determine when methods should be available.
Let’s use a new example — if a guest checks out on my site, only flat rate or international deliver will be available. Since I have an “expedited” version of my flat rate shipping, this will also be shown.
However, if club members (group) check out, they’ll have access to any shipping methods available for their address, such as free shipping or in-store pickup.
WooCommerce Role Based Methods is an easy-to-use plugin that lets you determine who should see which payment and shipping methods. It’s a great way to offer shipping perks for your site members or subscribers, or to segment the payment methods available to customers versus wholesale purchasers in your store.